SAX 和 PULL解析服务器文件实例 (部分代码)

<span style="font-size:18px;">package conn;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;

import sax.Student;

public class Democonnection {
	public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {

		String path = "http://localhost:8080/Day_28_01/LoginServlet?usename=abc&usepwd=123";
		URL url = new URL(path);
		
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setRequestMethod("GET");
		conn.connect();
		if (conn.getResponseCode() == 200) {
			InputStream is = conn.getInputStream();
		

		// 创建解析工厂
		SAXParserFactory factorysss = SAXParserFactory.newInstance();
		// 创建工厂创建解析器
		SAXParser parser = factorysss.newSAXParser();
		// 创建defaulthandler类
		 Myhandler mh = new Myhandler();
		 //解析
	     parser.parse(is, mh); //解析从服务器获得的流
	     //获得解析结果
	     ArrayList<Student>list = mh.getlist();
	     for (Student student : list) {
			System.out.println(student);
		}
		}
	}

}
</span>
package pull;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import javax.xml.stream.events.EndDocument;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

public class Demobull {
	public static void main(String[] args) throws IOException, XmlPullParserException {
		String path = "http://localhost:8080/Day_28_01/LoginServlet?usename=abc&usepwd=123";
		URL url = new URL(path);

		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setRequestMethod("GET");
		conn.connect();
		if (conn.getResponseCode() == 200) {
			InputStream is = conn.getInputStream();

			// 解析器工厂
			XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
			// 解析器
			XmlPullParser parser = factory.newPullParser();
			// 设置数据源
			parser.setInput(is, null);
			// 获取事件类型
			int type = parser.getEventType();
			String tag = null;
			Student student = null;
			ArrayList<Student> list = null;
			type = parser.getEventType();
			// 循环解析 直到文件结束
			while (type != XmlPullParser.END_DOCUMENT) {
				tag = parser.getName();
				switch (type) {
				case XmlPullParser.START_DOCUMENT:
					list = new ArrayList<>();
					break;

				case XmlPullParser.START_TAG:
					if ("student".equals(tag)) {
						student = new Student();
					} else if ("id".equals(tag)) {
						String str = parser.nextText();
						student.setId(Integer.parseInt(str));
					} else if ("name".equals(tag)) {
						String str = parser.nextText();
						student.setName(str);
					} else if ("sex".equals(tag)) {
						String str = parser.nextText();
						student.setSex(str);
					} else if ("age".equals(tag)) {
						String str = parser.nextText();
						student.setAge(str);
					}
					break;
				case XmlPullParser.END_TAG:
					if ("student".equals(tag)) {
						list.add(student);
					}
					break;
				case XmlPullParser.END_DOCUMENT:
					break;

				}
				type = parser.next();
			}

			for (Student student2 : list) {
				System.out.println(student2);
			}
		}
	}
}


servlet 代码

package servlet;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public LoginServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");

		String name = request.getParameter("usename");
		String pwd = request.getParameter("usepwd");
		System.out.println(name + " " + pwd);
		response.setContentType("text/html;charset=utf-8");
		PrintWriter pw = response.getWriter();
		FileInputStream fis = new FileInputStream("c:\\student.xml");
		BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
		if ("abc".equals(name)) {
			//pw.write("ok!!!");
			String s = null;
			while((s=reader.readLine())!=null){
				pw.write(s);
				//pw.write("/r/n");
			}
	
		} else {
			pw.write("fail");
		}
		pw.close();
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值