最近看了一下以前学android没有看懂的视频,在学习了javweb后总算是有点体会了。
demo1
服务端动态生成xml格式的数据后,客服端解析数据并且显示
1、打开eclipse,
新建web工程
建一个servlet,获取到java代码里面的数据,存入到request对象
建立一个 jsp,显示xml格式的数据
建立一个pojo,建立实体类
在dao包下,建立一个接口,得到对象里的数据
在daoimpl包下,建立一个类,实现这个接口
2、详细代码
package com.lin.pojo; public class News { private Integer id; private String title; private String timelength; public News(){} public News(Integer id, String title, String timelength) { super(); this.id = id; this.title = title; this.timelength = timelength; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getTimelength() { return timelength; } public void setTimelength(String timelength) { this.timelength = timelength; } }
接口:
package com.lin.service.impl; import java.util.List; import com.lin.pojo.News; public interface VideoNewsService { List<News> getLastNews(); }
实现接口的类
package com.lin.service.impl; import java.util.ArrayList; import java.util.List; import com.lin.pojo.News; public class VideoNewsServiceBean implements VideoNewsService { public List<News> getLastNews(){ List<News> newses=new ArrayList<News>(); newses.add(new News(12,"大会会的流量","49")); newses.add(new News(13,"大会会的苦难","39")); newses.add(new News(15,"睡觉的浏览","95")); return newses; } }
Servlet代码
package com.lin.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lin.pojo.News; import com.lin.service.impl.VideoNewsService; import com.lin.service.impl.VideoNewsServiceBean; public class ListServlet extends HttpServlet { private static final long serialVersionUID = 1L; private VideoNewsService service=new VideoNewsServiceBean(); public ListServlet() { // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<News> videos=service.getLastNews(); request.setAttribute("videos", videos); request.getRequestDispatcher("/WEB-INF/page/videoNews.jsp").forward(request, response); } }
jsp代码
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><?xml version="1.0" encoding="utf-8"?> <videonews><c:forEach items="${videos}" var="video"> <news id="${video.id}"> <title>${video.title}</title> <timelength>${video.timelength}</timelength> </news></c:forEach> </videonews>
注意:contentType为xml格式。引入了jstl标签,需要在lib目录下添加jar文件jstl-1.2.jar,standard-1.1.2.jar
web.xml的映射
<servlet> <description></description> <display-name>ListServlet</display-name> <servlet-name>ListServlet</servlet-name> <servlet-class>com.lin.servlet.ListServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ListServlet</servlet-name> <url-pattern>/ListServlet</url-pattern> </servlet-mapping> <servlet>
3、运行
在浏览器里输入http://localhost:8080/videonews/ListServlet
显示出
4、总结过程。servlet的内置对象request里存储了videos集合,jsp里迭代了
这个结合的元素
5、完成了服务端的开发后,接下来就是客服端了,写的非常简单。
(1)、新建android工程
listView.setAdapter(simpleadapter);列表显示
关键是对xml的解析
utils包里面新建新建一个java类
public static List<News> getLastNews() { //localhost改为本机ip地址 //涉及网络访问,添加权限,开辟线程 //第一个方法得到流, String path="http://192.168.189.1:8080/videonews/ListServlet"; try{ URL url=new URL(path); HttpURLConnection conn=(HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode()==200){ InputStream inStream=conn.getInputStream(); return parseXML(inStream); } }catch(Exception e){ e.printStackTrace(); } return null; } private static List<News> parseXML(InputStream inStream)throws Exception { //解析流,解析xml,getAttribute(),getName(),nextText() List<News> newses=new ArrayList<News>(); News news=null; XmlPullParser parser=Xml.newPullParser(); parser.setInput(inStream,"UTF-8"); int event=parser.getEventType(); while(event!=XmlPullParser.END_DOCUMENT){ switch (event) { case XmlPullParser.START_TAG: if("news".equals(parser.getName())){ int id=new Integer(parser.getAttributeValue(0)); news=new News(); news.setId(id); }else if("title".equals(parser.getName())){ news.setTitle(parser.nextText());//文本 }else if("timelength".equals(parser.getName())){ news.setTimelength(parser.nextText()); } break; case XmlPullParser.END_TAG: if("news".equals(parser.getName())){ newses.add(news); } break; } event=parser.next(); } return newses; }
相关推荐
ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据。 完整的KTR实例
最近在看老罗的教学视频,在看xml解析的时候,废了好大的劲,才做出来了。希望能够对大家有点用处。 1.注意修改MainActivity中的网址; 2.在解析中存在乱码问题,没有解决。
通过Linq快速解析Xml数据,方便快速的获取到想到的数据。
JavaScript解析xml数据
Android解析XML数据的方法,该示例详细说明了如何使用Android的Xml.newPullParser()来解析XML数据
本示例代码简单示范了SQLServer如何解析xml文档
OC-解析XML数据视频详解
使用NSXMLParser解析XML数据的一个Demo
JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。 JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果.
HappyMapper - 允许您快速轻松地解析XML数据并将其转换成ruby的数据结构
关于jq读取xml的,有需要的朋友可以下载。
【正文】 一、XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器获取数据。
NULL 博文链接:https://javaheart88.iteye.com/blog/549444
NULL 博文链接:https://lujo20121128.iteye.com/blog/1736765
采用volley的联网方式,实现解析服务端返回的xml数据
java 多txt文件解析,对xml格式数据添加到数据库
kettle 解析xml数据,xml多层分组嵌套,xml stax方法,完整解析案例使用(包含xml文件以及ktr文件)。ETL大数据迁移,数据清洗。XML Input Stream (StAX) 方法
采用SQL常规语句查询解析XML获取数据信息
AS3外部类加载解析xml,这直接调用,带例子,简明易用
TinyXML2是simple、small、efficient开源的C++ XML文件解析库,可以很方便的应用到现有的项目之中。非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。