==================================2012-12-11=======================
访问web的xml数据
1、web端
domain:
package com.caiz.web.domain;
import java.util.Date;
/**
* 新闻实体类
* @author HuangYucai
*/
public class News {
private Long id;
private String title;
private Date createTime;
public News() {
}
public News(Long id, String title, Date createTime) {
this.id = id;
this.title = title;
this.createTime = createTime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
servlet:
package com.caiz.web.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.caiz.web.domain.News;
import com.caiz.web.service.INewsService;
/**
* 新闻的service类
* @author HuangYucai
*
*/
public class NewsServiceImpl implements INewsService {
@Override
public List<News> getNewsList(){
List<News> newsList=new ArrayList<News>();
Date dt=new Date();
newsList.add(new News(1L,"国家兴亡,匹夫有责",dt));
newsList.add(new News(2L,"静水流深,谦者有为",dt));
newsList.add(new News(3L,"自助者,天助之",dt));
return newsList;
}
}
package com.caiz.web.service;
import java.util.List;
import com.caiz.web.domain.News;
public interface INewsService {
public abstract List<News> getNewsList();
}
jsp
<%@ page language="java" contentType="text/xml; charset=utf-8" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <?xml version="1.0" encoding="utf-8"?>
<root>
<c:forEach items="${newsList}" var="news">
<news id="${news.id}">
<title>${news.title}</title>
<createTime>
<fmt:formatDate value="${news.createTime}" pattern="yyyy-MM-dd"/>
</createTime>
</news>
</c:forEach>
</root>
servlet:
package com.caiz.web.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.caiz.web.domain.News;
import com.caiz.web.service.INewsService;
import com.caiz.web.service.impl.NewsServiceImpl;
/**
* Servlet implementation class NewsServeLet
*/
@WebServlet("/NewsServeLet")
public class NewsServelet extends HttpServlet {
private static final long serialVersionUID = 1L;
private INewsService newsService;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
newsService=new NewsServiceImpl();
List<News> newsList=newsService.getNewsList();
request.setAttribute("newsList", newsList);
request.getRequestDispatcher("news_xml.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
==============================2012-12-12============================
android端
package com.caiz.news.service;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Log;
import android.util.Xml;
import com.caiz.news.domain.News;
public class NewsService {
public static List<News> getNewsList() throws Exception {
String path = "http://192.168.0.186:8080/web/NewsServeLet";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if (conn.getResponseCode() == 200) {
InputStream iStream = conn.getInputStream();
Log.i("net", "OK");
List<News> newsList=ParseXML(iStream);
if(newsList!=null){
Log.i("size", "OK"+newsList.size());
System.out.print("size=="+newsList.size());
}else{
Log.i("size", "0000000");
System.out.print("size==0000");
}
return newsList;
}
List<News> newsList =new ArrayList<News>();
newsList.add(new News(1L,"cccccccc",new Date()));
return newsList;
}
public static String ParseString(InputStream iStream) throws Exception {
if(iStream==null){
return "null";
}
ByteArrayOutputStream bos=new ByteArrayOutputStream();
byte[] buf=new byte[1024];
int len=0;
while((len=iStream.read(buf))>0){
bos.write(buf,0,len);
}
return new String(bos.toByteArray());
}
public static List<News> ParseXML(InputStream iStream) throws Exception {
XmlPullParser parser = Xml.newPullParser();
parser.setInput(iStream, "UTF-8");
int event = parser.getEventType();
News news = null;
ArrayList<News> newsList = new ArrayList<News>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_TAG:
if ("news".equals(parser.getName())) {
Long id = new Long(parser.getAttributeValue(0));
news = new News();
news.setId(id);
}else if ("title".equals(parser.getName())) {
news.setTitle(parser.nextText());
}else if("createTime".equals(parser.getName())) {
news.setCreateTime(sdf.parse(parser.nextText()));
}
break;
case XmlPullParser.END_TAG:
if ("news".equals(parser.getName())) {
newsList.add(news);
news=null;
}
break;
}
event = parser.next();
}
return newsList;
}
}
package com.caiz.news;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.caiz.news.domain.News;
import com.caiz.news.service.NewsService;
public class NewsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listView = (ListView) this.findViewById(R.id.newsView);
try {
List<News> newsList = NewsService.getNewsList();
List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
if(newsList!=null){
Log.i("length",String.valueOf(newsList.size()));
}else{
Log.i("length","null");
}
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
for (News news : newsList) {
HashMap<String, Object> mps = new HashMap<String, Object>();
mps.put("id", news.getId());
mps.put("title", news.getTitle());
mps.put("createTime", df.format(news.getCreateTime()));
data.add(mps);
}
SimpleAdapter adapter = new SimpleAdapter(this, data,
R.layout.items, new String[] { "title", "createTime" },
new int[] { R.id.title, R.id.createTime });
listView.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
"Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...
这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...
Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...
《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...
《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...
根据给定的信息,我们可以从Java和Android学习笔记中提取出一系列重要的知识点,下面将逐一进行详细解释。 ### Java基础知识 #### 1. 命令行基础操作 - **`javacmd`**: 这个命令是Java命令行工具的一部分,用于...
这篇Android学习笔记主要涵盖了从第五章到第十三章的内容,是Android开发者或对Android系统感兴趣的初学者的重要参考资料。笔记详细解读了Android应用开发的核心概念和技术,旨在帮助读者深入理解并掌握Android开发...
这篇学习笔记涵盖了Android开发的基本知识点,旨在帮助初学者系统地理解和深入探索这个平台。 1. **Android系统架构**:Android由Linux内核、硬件抽象层(HAL)、运行库层、应用程序框架层和应用程序层组成。了解...
这份“Android学习笔记”涵盖了从基础到进阶的Android开发知识,旨在帮助开发者深入理解Android系统,并具备开发高质量Android应用的能力。 一、Android系统架构 Android系统分为四个主要层次:Linux内核、系统库和...
【Android学习笔记】 Android是一个开源的移动操作系统,主要应用于智能手机和平板电脑。它由Google主导并开源,基于Linux内核。学习Android开发,你需要熟悉Java或Kotlin语言,理解Android SDK、Android Studio...