Ajax与Java通过POST方式交互

1、关于Ajax交互的步骤

     1.1  获取到xmlhttprequest

      1.2  设置xmlhttprequest的onreadystatechange响应事件

      1.3  准备获取ajax请求 xmlhttp.open("POST", "AjaxServerlet", true);

      1.4  设置消息头为表单形式,模仿表单的POSt提交xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

      1.5  发送ajax请求xmlhttp.send("age=18&name=zhang");      //Ajax的POST请求,参数是通过xmlhttp.send()方法携带的

      1.6  处理Ajax交互获取到的数据,具体的处理在xmlhttprequest的onreadystatechange响应事件中实现

2、Ajax与Java的Servlet通过POSt交互

     2.1  html代码

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <body>  
  2.     <button id="mybtn">点击</button>  
  3.     <div id="myAjax"></div>  
  4. </body>  
     2.2 JavaScript代码

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <script type="text/javascript">  
  2.     //1、获取到xmlhttprequest  
  3.     function getXmlhttp() {  
  4.         var xmlhttp;  
  5.         if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari  
  6.             xmlhttp = new XMLHttpRequest();  
  7.         } else { // code for IE6, IE5  
  8.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
  9.         }  
  10.         return xmlhttp;  
  11.     }  
  12.     window.onload = function() {  
  13.         document.getElementById('mybtn').onclick = function() {  
  14.   
  15.             //1、获取到xmlhttprequest 对象  
  16.             var xmlhttp = getXmlhttp();  
  17.             //2、xmlhttprequest的响应事件  
  18.             xmlhttp.onreadystatechange = function() {  
  19.                 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {  
  20.                     //5、操作获取到的信息  
  21.                     //5.1ajax返回的数据,转换为javascript对象  
  22.                     // 5.1.1 利用eval实现转换  
  23.                     var ajaxResult = eval("(" + xmlhttp.responseText + ")");  
  24.                     //5.1.2 利用jquery的方法,对于jQuery.parseJSON(),键值必须为双引号  
  25.                     /* var ajaxResult = jQuery.parseJSON(xmlhttp.responseText); */  
  26.                     alert(ajaxResult)  
  27.                     //5.2获取JavaScript对象的属性  
  28.                     var age = ajaxResult.age;  
  29.                     var name = ajaxResult.name;  
  30.   
  31.                     //5.3获取到页面的DIV,并设置内容  
  32.                     var mydiv = document.getElementById("myAjax");  
  33.                     mydiv.innerHTML = "name:" + name + "," + "age:" + age;  
  34.                 }  
  35.             }  
  36.             //3、准备获取ajax请求  
  37.             //3.1 对于get请求,带参数的方式,直接在open函数的请求地址带上参数  
  38.             xmlhttp.open("POST", "AjaxServerlet", true);  
  39.             //4、发送ajax请求  
  40.             xmlhttp.setRequestHeader("Content-type",  
  41.                     "application/x-www-form-urlencoded");  
  42.             xmlhttp.send("age=18&name=zhang");  
  43.   
  44.         };  
  45.     }  
  46. </script>  
       2.3  style代码

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <style type="text/css">  
  2. #myAjax {  
  3.     width: 400px;  
  4.     height: 400px;  
  5.     border: 1px dashed red;  
  6.     text-align: center; /* div中的文字水平方向居中显示 */  
  7.     line-height: 400px; /*这个和div的高度相同,div中的文字就会垂直方向居中显示  */  
  8.     font-size: 16px;  
  9.     font-weight: bold;  
  10. }  
  11. </style>  
     2.4  AjaxServerlet.java代码

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public class AjaxServerlet extends HttpServlet {  
  2.   
  3.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  4.             throws ServletException, IOException {  
  5.         String age = request.getParameter("age");  
  6.         String name = request.getParameter("name");  
  7.         Person person = new Person(name, age);  
  8.   
  9.         String personJSON = "{\"name" + "\":\"" + name + "\"," + "\"age"  
  10.                 + "\":" + age + "}";  
  11.         System.out.println(personJSON);  
  12.         response.getWriter().write(personJSON);  
  13.     }  
  14.   
  15.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  16.             throws ServletException, IOException {  
  17.   
  18.         doGet(request, response);  
  19.   
  20.     }  
  21.   
  22. }  
       2.5   web.xml代码

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <servlet>  
  2.     <servlet-name>AjaxServerlet</servlet-name>  
  3.     <servlet-class>com.ajax.com.AjaxServerlet</servlet-class>  
  4. </servlet>  
  5.   
  6. <servlet-mapping>  
  7.     <servlet-name>AjaxServerlet</servlet-name>  
  8.     <url-pattern>/AjaxServerlet</url-pattern>  
  9. </servlet-mapping>  
  10.   
  11. <welcome-file-list>  
  12.     <welcome-file>index.html</welcome-file>  
  13. </welcome-file-list>  

   



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值