首先需要下载fastjson的jar包,官方也提供了下载地址和源码。
fastjson: http://www.oschina.net/p/fastjson
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
主要特点:
- 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
- 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
- 零依赖(没有依赖其它任何类库除了JDK)
代码如下:
- package com.fastjson.test;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.alibaba.fastjson.JSON;
- public class FirstServlet extends HttpServlet {
- /**
- * Constructor of the object.
- */
- public FirstServlet() {
- super();
- }
- /**
- * Destruction of the servlet. <br>
- */
- public void destroy() {
- super.destroy(); // Just puts "destroy" string in log
- // Put your code here
- }
- /**
- * The doGet method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to get.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doGet(HttpServletRequest request,HttpServletResponse response)
- throws ServletException,IOException {
- this.doPost(request,response);
- //
- // response.setContentType("text/html");
- // PrintWriter out = response.getWriter();
- // out
- // .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
- // out.println("<HTML>");
- // out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
- // out.println(" <BODY>");
- // out.print(" This is ");
- // out.print(this.getClass());
- // out.println(",using the GET method");
- // out.println(" </BODY>");
- // out.println("</HTML>");
- // out.flush();
- // out.close();
- }
- /**
- * The doPost method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to post.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doPost(HttpServletRequest request,IOException {
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- Group group = new Group();
- group.setId(0L);
- group.setName("admin");
- User guestUser = new User();
- guestUser.setId(2L);
- guestUser.setName("guest");
- User rootUser = new User();
- rootUser.setId(3L);
- rootUser.setName("root");
- group.getUsers().add(guestUser);
- group.getUsers().add(rootUser);
- String jsonString = JSON.toJSONString(group);
- System.out.println("调用后台");
- out.println(jsonString);
- out.flush();
- out.close();
- }
- /**
- * Initialization of the servlet. <br>
- *
- * @throws ServletException if an error occurs
- */
- public void init() throws ServletException {
- // Put your code here
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <description>This is the description of my J2EE component</description>
- <display-name>This is the display name of my J2EE component</display-name>
- <servlet-name>FirstServlet</servlet-name>
- <servlet-class>com.fastjson.test.FirstServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>FirstServlet</servlet-name>
- <url-pattern>/servlet/first</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
jsp页面上(整理也可以用Html页面)
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'json.jsp' starting page</title>
- <@R_502_338@ http-equiv="pragma" content="no-cache">
- <@R_502_338@ http-equiv="cache-control" content="no-cache">
- <@R_502_338@ http-equiv="expires" content="0">
- <@R_502_338@ http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <@R_502_338@ http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
- <script type="text/javascript">
- $(function(){
- $('#mylink').click(function(){
- alert("ok");
- $.get("http://192.168.0.101:8080/Test/servlet/first",function(data){
- alert(data);
- $('#result').text(data);
- return;
- });
- });
- });
- </script>
- </head>
- <body>
- <a href="javascript:void(0)" id="mylink">链接</a>
- <input type="button" id="mybtn" value="提交">
- <div id="result">
- </div>
- </body>
- </html>