gdufo

           

          java網絡編程-Ajax+servlet實例

          Ajax異步請求,servlet產生隨機數據,Html頁面無刷新顯示。
          運行環境:jdk1.5+tomcat 5.5

          一、ajaxServlet.java

          package com;
          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 java.util.Random;
          public class ajaxServlet extends HttpServlet{
          private static final String CONTENT_TYPE="text/xml; charset=gb2312"; public void init() throws ServletException{} public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setContentType(CONTENT_TYPE); response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); response.setDateHeader("Expires",0); PrintWriter out=response.getWriter(); String action=request.getParameter("action"); if(("send").equals(action)){ Random random = new Random();  String AA=Integer.toString(Math.abs(random.nextInt())); String BB=Integer.toString(Math.abs(random.nextInt()));  String CC=Integer.toString(Math.abs(random.nextInt())); String DD=Integer.toString(Math.abs(random.nextInt())); StringBuffer sb=new StringBuffer(); sb.append(AA); sb.append("@@@"); sb.append(BB); sb.append("@@@"); sb.append(CC); sb.append("@@@"); sb.append(DD); out.write(sb.toString()); out.close(); } }}

          二、testajax.html
          <html>
          <head>
          <title>AJAX.html</title>
          </head>
          <script type="text/javascript">

          function getResult(){
                      var url = "/Tajax/AajaxServlet?action=send";
                      if (window.XMLHttpRequest) {
                      req = new XMLHttpRequest();
                      }else if (window.ActiveXObject){
                      req = new ActiveXObject("Microsoft.XMLHTTP");
                      }
                      if(req){
                      req.open("GET",url, true);
                      req.onreadystatechange = complete;
                      req.send(null);
                      }
                      }
                      /*分析返回的文本文檔*/
                      function complete(){
                      if (req.readyState == 4) {
                      if (req.status == 200) {
                      // alert(req.responseText);
                      var strResult = unescape(req.responseText);
                      var arrResult = strResult.split("@@@");
                      RemoveRow();  //刪除以前的數據.
                      num1 = arrResult[0]; //字段num1的值
                      num2 = arrResult[1]; //字段num2的值
                      num3 = arrResult[2];
                      num4 = arrResult[3];
                      row1= tb.insertRow();
                      cell1 = row1.insertCell();
                      cell1.innerText = num1;
                      cell2 = row1.insertCell();
                      cell2.innerText = num2;
                      row2= tb.insertRow();
                      cell3 = row2.insertCell();
                      cell3.innerText = num3;
                      cell4 = row2.insertCell();
                      cell4.innerText = num4;
                      } else {
                      alert('There was a problem with the request.');
                      }
                      }
                      }
                      function RemoveRow(){//保留第一行表頭,其余數據均刪除.
                      var iRows = tb.rows.length;
                      for(var i=0;i< iRows-1;i++){
                      tb.deleteRow(1);
                      }
                      }
                      function MyShow(){//2秒自動刷新一次,2秒取得一次數據.
                      timer = window.setInterval("getResult()",2000);
                      }
                      

          </script>

          <body onload="MyShow()">
          <table width="47%" height="23" border="0" cellpadding="1" cellspacing="0" id="tb">
          <tr><td>代碼</td>
          <td>價格</td>
          </tr>
          </table>

          <form>
          <p>輸入股票代碼:
          <input type="text" size="14" name="phone" id="phone"/>
          </p>
          <p>你交易的數量:</p>
          <p><textarea name="order" rows="6" cols="50" id="order"></textarea></p>
          <p><input type="submit" value="提交" id="submit" /></p>
          </form>

          </body>


            三、web.xml

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <web-app 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"
          version="2.4">

          <display-name>Welcome to Tomcat</display-name>
          <description>
          Welcome to Tomcat
          </description>

          <servlet>
          <servlet-name>AajaxServlet</servlet-name>
          <servlet-class>com.ajaxServlet</servlet-class>
          </servlet>
          <servlet-mapping>
          <servlet-name>AajaxServlet</servlet-name>
          <url-pattern>/AajaxServlet</url-pattern>
          </servlet-mapping>


          </web-app>

          posted on 2008-08-18 11:49 gdufo 閱讀(303) 評論(0)  編輯  收藏 所屬分類: JAVA 基礎

          導航

          統計

          • 隨筆 - 184
          • 文章 - 1
          • 評論 - 10
          • 引用 - 0

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 光山县| 海原县| 南川市| 达州市| 巴彦淖尔市| 浦城县| 泽普县| 怀来县| 绩溪县| 祁阳县| 汕尾市| 郓城县| 灵宝市| 江源县| 容城县| 库车县| 洞口县| 平定县| 大方县| 永定县| 普兰县| 永泰县| 长武县| 晋城| 十堰市| 西城区| 锡林郭勒盟| 浮山县| 桐庐县| 布拖县| 聂荣县| 永德县| 柯坪县| 玛多县| 正镶白旗| 正蓝旗| 城步| 竹北市| 台江县| 南康市| 蛟河市|