Servlet解析JSON数据和发送JSON数据

[java]  view plain  copy
  1. package com.jcuckoo.util;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStreamReader;  
  6. import java.io.UnsupportedEncodingException;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import net.sf.json.JSONObject;  
  9.   
  10. public class JsonReader {  
  11.     public static JSONObject receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {  
  12.   
  13.         // 读取请求内容  
  14.         BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));  
  15.         String line = null;  
  16.         StringBuilder sb = new StringBuilder();  
  17.         while ((line = br.readLine()) != null) {  
  18.             sb.append(line);  
  19.         }  
  20.         //将json字符串转换为json对象  
  21.         JSONObject json=JSONObject.fromObject(sb.toString());  
  22.         return json;  
  23.     }  
  24. }  


[java]  view plain  copy
  1. package com.jcuckoo.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.Writer;  
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.annotation.WebServlet;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10. import com.jcuckoo.pojos.User;  
  11. import com.jcuckoo.service.UserService;  
  12. import com.jcuckoo.util.JsonReader;  
  13. import net.sf.json.JSONObject;  
  14. @WebServlet("/LoginUserServlet")  
  15. public class LoginUserServlet extends HttpServlet {  
  16.     private static final long serialVersionUID = 1L;  
  17.   
  18.     public LoginUserServlet() {  
  19.         super();  
  20.     }  
  21.   
  22.     protected void doGet(HttpServletRequest request, HttpServletResponse response)  
  23.             throws ServletException, IOException {  
  24.         doPost(request, response);  
  25.     }  
  26.   
  27.     protected void doPost(HttpServletRequest request, HttpServletResponse response)  
  28.             throws ServletException, IOException {  
  29.         // response.setContentType("text/html");  
  30.         // 设置字符编码为UTF-8, 这样支持汉字显示  
  31.         // response.setCharacterEncoding("UTF-8");  
  32.   
  33.         response.setContentType("text/html;charset=utf-8");  
  34.   
  35.         /** 设置响应头允许ajax跨域访问 **/  
  36.         response.setHeader("Access-Control-Allow-Origin""*");  
  37.         /* 星号表示所有的异域请求都可以接受, */  
  38.         response.setHeader("Access-Control-Allow-Methods""GET,POST");  
  39.   
  40.         Writer out = response.getWriter();  
  41.   
  42.   
  43.         JSONObject json=JsonReader.receivePost(request);  
  44.         System.out.println(json);  
  45.           
  46.         UserService userService=new UserService();  
  47.           
  48.         //将建json对象转换为java对象  
  49.         User loginUser = (User)JSONObject.toBean(json,User.class);  
  50.         User user = userService.LoginUser(loginUser);  
  51.         JSONObject jsonObject=new JSONObject() ;  
  52.         if(user!=null){  
  53.             //将java对象转换为json对象  
  54.             jsonObject.put("user", JSONObject.fromObject(user));  
  55.             jsonObject.put("message""用户登录成功!");  
  56.         }else{  
  57.   
  58.             jsonObject.put("message""用户登录失败!");  
  59.         }  
  60.         out.write(jsonObject.toString());  
  61.         out.flush();  
  62.     }  
  63. }  

[java]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=utf-8"%>  
  2. <!DOCTYPE html >  
  3. <html>  
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  6. <title>Servlet-jCuckoo</title>  
  7. <script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>  
  8. </head>  
  9. <body>  
  10.     <form >  
  11.         用户名:<input type="text" id="userName"/><br/>  
  12.         密码:<input type="password" id="userPwd"/><br/>  
  13.         <input type="button" value="登录" id="sender">   
  14.     </form>  
  15.     <div id="messageDiv"></div>  
  16.       
  17.     <script>  
  18.     $('#sender').click(function(){  
  19.         var userName=document.getElementById('userName').value;  
  20.         var userPwd=document.getElementById('userPwd').value;  
  21.         var user={userName:userName,userPwd:userPwd};  
  22.         var url="LoginUserServlet";  
  23.           
  24.         $.post(url, JSON.stringify(user), function(data) {  
  25.               console.log(data);  
  26.              $("#messageDiv").html(data);  
  27.              var json=JSON.parse(data);  
  28.              alert(json.message);  
  29.          });   
  30.          /* $.ajax({ 
  31.             type:'post', 
  32.             url:url, 
  33.             dataType:"json",             
  34.             data:JSON.stringify(user), 
  35.             success: function (data) { 
  36.                 var user=data.user; 
  37.                  $("#messageDiv").html(JSON.stringify(user)); 
  38.                  alert(data.message); 
  39.             }, 
  40.             error: function (data) { 
  41.                  alert(data.message); 
  42.                  $("#messageDiv").html(""); 
  43.             } 
  44.         });  */  
  45.           
  46.     });  
  47.     </script>  
  48. </body>  
  49. </html>  

文章链接:点击打开链接

猜你喜欢

转载自blog.csdn.net/weixin_39478044/article/details/80261414
今日推荐