用JSON格式提交数据到服务端

准备Hero.java

[html]  view plain  copy
  1. public class Hero {  
  2.     private String name;  
  3.     private int hp;  
  4.     public String getName() {  
  5.         return name;  
  6.     }  
  7.     public void setName(String name) {  
  8.         this.name = name;  
  9.     }  
  10.     public int getHp() {  
  11.         return hp;  
  12.     }  
  13.     public void setHp(int hp) {  
  14.         this.hp = hp;  
  15.     }  
  16.     @Override  
  17.      public String toString() {  
  18.             return "Hero [name=" + name + "hp=" + hp + "]";  
  19.         }  
  20. }  

submit.html文件

[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    
  5. <title>用AJAX以JSON方式提交数据</title>    
  6. <script type="text/javascript" src="jquery.min.js"></script>    
  7. </head>    
  8. <body>    
  9.     <form >    
  10.        名称:<input type="text" id="name"/><br/>    
  11.         血量:<input type="text" id="hp"/><br/>    
  12.         <input type="button" value="提交" id="sender">     
  13.     </form>    
  14.     <div id="messageDiv"></div>    
  15.         
  16.     <script>    
  17.     $('#sender').click(function(){    
  18.         var name=document.getElementById('name').value;    
  19.         var hp=document.getElementById('hp').value;    
  20.         var hero={"name":name,"hp":hp};    
  21.         var url="submitServlet";    
  22.             
  23.         $.post(  
  24.                 url,   
  25.                 {"data":JSON.stringify(hero)},  
  26.                 function(data) {    
  27.                      alert("提交成功,请在Tomcat控制台查看服务端接收到的数据");  
  28.          });     
  29.   
  30.             
  31.     });    
  32.     </script>    
  33. </body>    
  34.     
  35. </body>  
  36. </html>  
JSON.stringify函数的作用是将一个javascript对象,转换为JSON格式的字符串。

准备SubmitServlet用来接收数据

[html]  view plain  copy
  1. import java.io.IOException;  
  2.    
  3. import javax.servlet.ServletException;  
  4. import javax.servlet.http.HttpServlet;  
  5. import javax.servlet.http.HttpServletRequest;  
  6. import javax.servlet.http.HttpServletResponse;  
  7.    
  8. import net.sf.json.JSONObject;   
  9.      
  10. public class SubmitServlet extends HttpServlet {   
  11.     protected void service(HttpServletRequest request, HttpServletResponse response)   
  12.             throws ServletException, IOException {  
  13.         String data =request.getParameter("data");  
  14.            
  15.         System.out.println("服务端接收到的数据是:" +data);  
  16.     
  17.         JSONObject json=JSONObject.fromObject(data);   
  18.             
  19.         System.out.println("转换为JSON对象之后是:"+ json);  
  20.              
  21.         Hero hero = (Hero)JSONObject.toBean(json,Hero.class);   
  22.         System.out.println("转换为Hero对象之后是:"+hero);  
  23.     }   
  24. }   
1. 获取浏览器提交的字符串
2. 把字符串转换为JSON对象

3. 把JSON对象转换为Hero对象

最后配置web.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.    
  4.     <servlet>  
  5.         <servlet-name>SubmitServlet</servlet-name>  
  6.         <servlet-class>SubmitServlet</servlet-class>  
  7.     </servlet>  
  8.    
  9.     <servlet-mapping>  
  10.         <servlet-name>SubmitServlet</servlet-name>  
  11.         <url-pattern>/submitServlet</url-pattern>  
  12.     </servlet-mapping>  
  13.    
  14. </web-app>  
启动tomcat访问 http://127.0.0.1:8080/项目名/submit.html


在tomcat控制台看到传来的数据




获取一个对象

准备GetOneServlet

[html]  view plain  copy
  1. import java.io.IOException;  
  2. import java.io.Writer;  
  3.    
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.    
  9. import net.sf.json.JSONObject;   
  10.      
  11. public class GetOneServlet extends HttpServlet {   
  12.     protected void service(HttpServletRequest request, HttpServletResponse response)   
  13.             throws ServletException, IOException {  
  14.             
  15.         Hero hero = new Hero();  
  16.         hero.setName("盖伦");  
  17.         hero.setHp(353);  
  18.            
  19.         JSONObject jsonnew JSONObject();  
  20.      
  21.         json.put("hero", JSONObject.fromObject(hero));  
  22.         response.setContentType("text/html;charset=utf-8");   
  23.         response.getWriter().print(json);  
  24.     }   
  25. }   
web.xml
[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.    
  4.     <servlet>  
  5.         <servlet-name>SubmitServlet</servlet-name>  
  6.         <servlet-class>SubmitServlet</servlet-class>  
  7.     </servlet>  
  8.    
  9.     <servlet-mapping>  
  10.         <servlet-name>SubmitServlet</servlet-name>  
  11.         <url-pattern>/submitServlet</url-pattern>  
  12.     </servlet-mapping>  
  13.     <servlet>  
  14.         <servlet-name>GetOneServlet</servlet-name>  
  15.         <servlet-class>GetOneServlet</servlet-class>  
  16.     </servlet>  
  17.    
  18.     <servlet-mapping>  
  19.         <servlet-name>GetOneServlet</servlet-name>  
  20.         <url-pattern>/getOneServlet</url-pattern>  
  21.     </servlet-mapping>  
  22.    
  23. </web-app>  

getOne.html

[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">   
  5. <title>用AJAX以JSON方式获取数据</title>   
  6. <script type="text/javascript" src="jquery.min.js"></script>   
  7. </head>   
  8. <body>   
  9.     <input type="button" value="通过AJAX获取一个Hero对象" id="sender">    
  10.      
  11.     <div id="messageDiv"></div>   
  12.          
  13.     <script>   
  14.     $('#sender').click(function(){   
  15.         var url="getOneServlet";   
  16.         $.post(  
  17.                 url,  
  18.                 function(data) {  
  19.                      var json=JSON.parse(data);   
  20.                      var name =json.hero.name;   
  21.                      var hp = json.hero.hp;  
  22.                      $("#messageDiv").html("英雄名称:"+name + "<br>英雄血量:" +hp );  
  23.                         
  24.          });    
  25.     });   
  26.     </script>   
  27. </body>   
  28.      
  29. </body>  
  30. </html>  

测试(重启tomcat)

启动tomcat访问http://127.0.0.1:8080/项目名/getOne.html



3 获取多个对象

[html]  view plain  copy
  1. import java.io.IOException;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4.    
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.    
  10. import net.sf.json.JSONSerializer;   
  11.      
  12. public class GetManyServlet extends HttpServlet {   
  13.     protected void service(HttpServletRequest request, HttpServletResponse response)   
  14.             throws ServletException, IOException {  
  15.         List<Hero> heros = new ArrayList<>();  
  16.         for (int i = 0; i < 10; i++) {  
  17.             Hero hero = new Hero();  
  18.             hero.setName("name"+i);  
  19.             hero.setHp(500+i);  
  20.             heros.add(hero);  
  21.         }  
  22.            
  23.         String result =JSONSerializer.toJSON(heros).toString();  
  24.    
  25.         response.setContentType("text/html;charset=utf-8");   
  26.         response.getWriter().print(result);  
  27.     }   
  28.     public static void main(String[] args) {  
  29.         List<Hero> heros = new ArrayList<>();  
  30.         for (int i = 0; i < 10; i++) {  
  31.             Hero hero = new Hero();  
  32.             hero.setName("name"+i);  
  33.             hero.setHp(500+i);  
  34.             heros.add(hero);  
  35.         }  
  36.            
  37.         System.out.println(JSONSerializer.toJSON(heros).toString());  
  38.     }  
  39. }   

web.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.    
  4.     <servlet>  
  5.         <servlet-name>SubmitServlet</servlet-name>  
  6.         <servlet-class>SubmitServlet</servlet-class>  
  7.     </servlet>  
  8.    
  9.     <servlet-mapping>  
  10.         <servlet-name>SubmitServlet</servlet-name>  
  11.         <url-pattern>/submitServlet</url-pattern>  
  12.     </servlet-mapping>  
  13.     <servlet>  
  14.         <servlet-name>GetOneServlet</servlet-name>  
  15.         <servlet-class>GetOneServlet</servlet-class>  
  16.     </servlet>  
  17.    
  18.     <servlet-mapping>  
  19.         <servlet-name>GetOneServlet</servlet-name>  
  20.         <url-pattern>/getOneServlet</url-pattern>  
  21.     </servlet-mapping>  
  22.     <servlet>  
  23.         <servlet-name>GetManyServlet</servlet-name>  
  24.         <servlet-class>GetManyServlet</servlet-class>  
  25.     </servlet>  
  26.    
  27.     <servlet-mapping>  
  28.         <servlet-name>GetManyServlet</servlet-name>  
  29.         <url-pattern>/getManyServlet</url-pattern>  
  30.     </servlet-mapping>  
  31.    
  32. </web-app>  

getMany.html

[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">   
  5. <title>用AJAX以JSON方式获取数据</title>   
  6. <script type="text/javascript" src="jquery.min.js"></script>   
  7. </head>   
  8. <body>   
  9.     <input type="button" value="通过AJAX获取多个Hero对象" id="sender">    
  10.      
  11.     <div id="messageDiv"></div>   
  12.          
  13.     <script>   
  14.     $('#sender').click(function(){   
  15.         var url="getManyServlet";   
  16.         $.post(  
  17.                 url,  
  18.                 function(data) {  
  19.                     var heros = $.parseJSON(data);  
  20.                      for(i in heros){  
  21.                          var old = $("#messageDiv").html();  
  22.                          var hero = heros[i];  
  23.                          $("#messageDiv").html(old + "<br>"+hero.name+"   -----   "+hero.hp);   
  24.                      }  
  25.          });    
  26.     });   
  27.     </script>   
  28. </body>   
  29.      
  30. </body>  
  31. </html>  

测试(重启tomcat)

启动tomcat访问http://127.0.0.1:8080/项目名/getMany.html


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值