日期:2014-05-16  浏览次数:20458 次

详细学习JSON之Servlet中使用JSON

??? 在Servlet中使用JSON,和上篇的使用相同,只不过多了配置web.xml的内容

??

??? servlet代码如下:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

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

import net.sf.json.JSONArray;

public class JSONServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public JSONServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); 
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//使用JSONArray测试
		JSONArray jsonArray = new JSONArray();
		jsonArray.add("MCA");
		jsonArray.add("kevin");
		jsonArray.add("15-12-1998");
		jsonArray.add(new Double(12.3));
		List<String> list = new ArrayList<String>(); 
		list.add("a collection added");
		list.add("kevin collection test");
		jsonArray.addAll(list);
		
		//页面输出JSONArray的内容
		PrintWriter out = response.getWriter();
		out.print(jsonArray);
		out.println("======================================");
		for(int i=0;i<jsonArray.size();i++){
			out.print(jsonArray.getString(i));
		}
	}

	public void init() throws ServletException {
	}
}

?

? 配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>JSONServlet</servlet-name>
    <servlet-class>com.justinmobile.JSONServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>JSONServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

?

? 访问页面

? http://localhost:8080/Ext/test.do

? 我们得到输出结果:

?

["MCA","kevin","15-12-1998",12.3,"a collection added","kevin collection test"]====================================== MCAkevin15-12-199812.3a collection addedkevin collection test

?

?

1 楼 dieslrae 2009-12-31  
我一般是这样

Map map = new HashMap();
map.put("age", 22);
map.put("name", "sherry");

Map data = new HashMap();
data.put("data", map);
data.put("success", true);

JSONObject.fromObject(data).write(response.getWriter());

2 楼 zhonggeneral 2009-12-31  
传一个List<bean>进去,不就可以了吗?干嘛搞那么复杂!
3 楼 daxiong921 2010-01-01  
为什么要写这么个servlet呀?有什么特别的吗?