代码改变世界

jsp Ajax请求(返回json数据类型)

2017-01-14 18:00  甘雨路  阅读(8446)  评论(0编辑  收藏  举报
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <title>My JSP  page</title>
    
    <script>
        
        
        function addText(){
            //创建XMLHttpRequest 请求的对象
            var request = new XMLHttpRequest();
            // 请求的方式
            var method = "GET";
            // 请求的连接地址
            var url = "AServlet";
            // 初始化请求参数
            request.open(method, url,true);
            // 发送请求
            request.send(null);
            request.onreadystatechange = function(){
                // 如果响应请求
                if(request.readyState==4){
                    // 如果请求成功
                    if(request.status==200 || request.status==304){
                        
                        var text = request.responseText;
                        alert(text);
                        var data = eval("("+text+")");
                        /* var data = JSON.parse(text); */
                        alert(data);
                        var span = document.getElementsByTagName("span")[0];
                        span.innerHTML = span.innerHTML+data.user.address.province;
                    }
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  

  <servlet>
    <servlet-name>AServlet</servlet-name>
    <servlet-class>ajax.AServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>AServlet</servlet-name>
    <url-pattern>/AServlet</url-pattern>
  </servlet-mapping>
  
</web-app>

package ajax;

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;

public class AServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        System.out.println("doGet...");
        //设置编码
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //设置返回文本的类型
        response.setContentType("text/json");
        
        String jsonString = "{\"user\":{\"name\":\"lf\",\"address\":{\"province\":\"广东\",\"city\":\"深圳\"}}}";
        
        response.getWriter().print(jsonString);
                
        
    }
    
    
    
    

}

 

        }
            };
            
        }

    </script>
    
  </head>
  
  <body>
      <h1>解析xml</h1>
      <span>省份:</span><br>
    <a href="#" onclick="addText()">添加文本</a>
  </body>
</html>