`
阅读更多



  最近看了一下以前学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;
	}

 

 

 

             

 

  • 大小: 11.6 KB
  • 大小: 36.7 KB
分享到:
评论

相关推荐

    解析XML数据

    在本文中,我们将深入探讨XML的基本概念、解析XML数据的方法以及在实际应用中可能遇到的问题,比如乱码问题。 XML的结构: XML文档由一系列的元素构成,每个元素都有开始标签和结束标签,例如 `&lt;tag&gt;` 和 `&lt;/tag&gt;`...

    Flex里解析XML数据

    本文将深入探讨如何在Flex中解析XML数据,以及相关的工具和技术。 1. XML基础 XML(Extensible Markup Language)是一种自定义标记语言,用于存储和传输结构化数据。它的结构清晰,易于人和机器阅读。XML文档由元素...

    ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据

    ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据。 完整的KTR实例

    易语言 xml解析 易语言 xml解析 教程 带源码

    这些解析器可以帮助我们解析XML数据,将其转换为易语言可以处理的数据结构,如字节流、字符串或对象。常见的解析方式有DOM(Document Object Model)和SAX(Simple API for XML)两种。DOM解析器会将整个XML文档加载...

    java解析xml数据---sax解析器

    Java解析XML数据主要涉及到的是对XML文档的读取和处理,SAX(Simple API for XML)解析器是一种基于事件驱动的解析方式,适用于处理大型XML文件。与DOM(Document Object Model)解析器不同,SAX不需要一次性加载...

    Android网络之数据解析----SAX方式解析XML数据

    本篇文章将深入探讨如何使用SAX(Simple API for XML)方式解析XML数据,这是Android网络通信中处理XML数据的一种高效方法。 一、XML与JSON数据 XML(eXtensible Markup Language)是一种用于标记数据的语言,它...

    Dom4解析XML数据示例

    本篇将深入探讨如何使用DOM4(Document Object Model Level 4)解析XML数据,以实现高效的数据处理。 DOM4是W3C发布的DOM标准的最新版本,它提供了更强大的功能和改进,使得开发者可以更方便地处理XML文档。DOM是一...

    加载解析xml数据 actionscript3.0

    本文将深入探讨如何在AS3中加载和解析XML数据,结合提供的文件,我们可以通过以下步骤实现这一功能。 首先,我们有四个关键文件: 1. `Xmlloader.as`:这是自定义的XML加载器类,负责加载XML文件。 2. `Main.as`:...

    Android---解析XML数据

    本教程将深入探讨如何在Android应用中解析XML数据,主要聚焦于使用`Xml.newPullParser()`方法。这个方法是Android提供的一个高效的XML解析器,它支持事件驱动的解析模式,适用于处理大型XML文档。 首先,我们来理解...

    volley联网解析网络上的xml文件

    总的来说,Volley联网解析XML文件的关键在于创建自定义的`Request`子类,正确地解析XML数据,并在响应回调中处理解析结果。通过这种方式,我们可以利用Volley的强大功能和XML的灵活性,实现高效、可靠的网络数据交换...

    C# 通用解析xml数据

    通过Linq快速解析Xml数据,方便快速的获取到想到的数据。

    JavaScript解析xml数据.js

    JavaScript解析xml数据

    C++实现http的post发送接收数据以及xml解析

    本文将深入探讨如何使用C++语言通过WinInet库实现HTTP的POST请求,以及如何接收并解析XML数据。首先,我们需要了解HTTP POST请求的基本原理。 HTTP POST请求通常用于向服务器发送数据,比如用户填写表单后提交信息...

    STM32解析XML

    5. **解析XML文档**:使用`xml_parse()`函数开始解析XML数据。这个过程会逐行处理XML文档,返回XML元素的节点结构。 6. **处理XML节点**:在解析过程中,通过回调函数处理每个元素节点,提取元素名、属性和文本内容...

    OC-解析XML数据视频详解

    OC-解析XML数据视频详解

    XML解析工具

    读取和设置xml配置文件是最常用的...TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。

    C#解析XML文件并用WinForm显示

    要解析XML文件,C#提供了System.Xml命名空间,其中包含如XmlDocument、XmlNode、XmlElement等类,用于读取、操作和解析XML数据。 1. **使用XmlDocument解析XML** - `XmlDocument` 类是解析XML文件的核心。通过`new...

    kettle批量解析多个xml文件

    这一步确保了XML数据正确地转化为结构化数据。 4. **数据转换**:如果需要对数据进行清洗、验证或转换,可以在这一步骤中添加适当的转换步骤,如“过滤行”、“修改字段”、“计算字段”等。 5. **Oracle输出步骤*...

    domino通过lotusscript解析xml

    使用Lotusscript编写代理,我们可以编写脚本来解析XML数据,然后根据需要执行操作,如更新数据库记录、发送邮件等。 在提供的压缩包文件中,`xmlOpt.lss`可能是一个包含了处理XML的Lotusscript库或类的文件,可以...

Global site tag (gtag.js) - Google Analytics