codefans

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          程序設計鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          Ajax入門實例

          安裝jdk1.4和tomcat5.0.28,IE5.5獲FireFox。進入正題

          [1]寫index.jsp文件

          <%@ page contentType="text/html;charset=gb2312"%>

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

          <html>

            <head>

              <title>My JSP 'index.jsp' starting page</title>

              <meta http-equiv="pragma" content="no-cache">

              <meta http-equiv="cache-control" content="no-cache">

              <meta http-equiv="expires" content="0">

              <meta http-equiv="description" content="This is my page">

              <link rel="stylesheet" type="text/css" href="styles.css">

            </head>

           

            <body>

              <script type="text/javascript">

              var req;

               function validate() {

                   var idField = document.getElementById("userid");

                   var url = "servlet/ValidateServlet?id=" + escape(idField.value);

                   if (window.XMLHttpRequest) {

                       alert("0");

                       req = new XMLHttpRequest();

                   }else if (window.ActiveXObject) {

                       alert("1");

                       req = new ActiveXObject("Microsoft.XMLHTTP");

                   }

                  if(req){

                      req.open("GET", url, true);

                       req.onreadystatechange = callback;

                      req.send(null);       

                   }

              }

          function callback() {

              if (req.readyState == 4) {

                  if (req.status == 200) {

                           parseMessage();

                           // update the HTML DOM based on whether or not message is valid

                  }else{

                      alert ("Not able to retrieve description" + req.statusText);

                  }      

              }

          }

          function parseMessage() {

              var message = req.responseXML.getElementsByTagName("message")[0];

              var name = req.responseXML.getElementsByTagName("name")[0];

              setMessage(message.firstChild.data,name.firstChild.data);

          }

           function setMessage(message,name) {

               var userMessageElement = document.getElementById("userIdMessage");

               userMessageElement.innerHTML = "<font color=\"red\">" + message + " you "+name+"</font>";

           }

          </script>

          <div id="userIdMessage"></div>

              <input type="text"

                      size="20"

                        id="userid"

                      name="id"

                   onkeyup="validate();">

            </body>

          </html>

          [2] 寫servlet/ValidateServlet.java類

          /*

           * 創建日期 2005-8-3

           *

           * TODO 要更改此生成的文件的模板,請轉至

           * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板

           */

          package com;//com包需要自己創建.

           

          import java.io.IOException;

          import java.io.PrintWriter;

          import java.util.HashMap;

           

          import javax.servlet.ServletConfig;

          import javax.servlet.ServletContext;

          import javax.servlet.ServletException;

          import javax.servlet.http.HttpServlet;

          import javax.servlet.http.HttpServletRequest;

          import javax.servlet.http.HttpServletResponse;

           

          /**

           * @author Administrator

           *

           * TODO 要更改此生成的類型注釋的模板,請轉至

           * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板

           */

          public class ValidateServlet extends HttpServlet {

           

              /**

               * Constructor of the object.

               */

            

              private ServletContext context;

              private HashMap users = new HashMap();

           

              public ValidateServlet() {

                  super();

              }

           

              /**

               * Destruction of the servlet. <br>

               */

              public void destroy() {

                  super.destroy(); // Just puts "destroy" string in log

                  // Put your code here

              }

           

              /**

               * The doGet method of the servlet. <br>

               *

               * This method is called when a form has its tag value method equals to get.

               *

               * @param request the request send by the client to the server

               * @param response the response send by the server to the client

               * @throws ServletException if an error occurred

               * @throws IOException if an error occurred

               */

              public void doGet(HttpServletRequest request, HttpServletResponse response)

                      throws ServletException, IOException {

                  response.setContentType("text/xml");

                  response.setHeader("Cache-Control", "no-cache");

                

                  String targetId = request.getParameter("id");

                  System.out.println(targetId.trim());

           

                  if ((targetId != null) && users.containsKey(targetId.trim())) {

           

                                    response.getWriter().write("<info><message>welcome</message><name>sdl</name></info>");

                  } else {

           

                            response.getWriter().write("<info><message>kill</message><name>bush</name></info>");

                          System.out.print("invalid");

                      }

           

           

              }

              /**

               * Initialization of the servlet. <br>

               *

               * @throws ServletException if an error occure

               */

              public void init(ServletConfig config) throws ServletException {

                  this.context = config.getServletContext();

                  users.put("greg","account data");

                  users.put("duke","account data");

           

              }

           

          }

          [3]寫web.xml文件

          <?xml version="1.0" encoding="UTF-8"?>

          <web-app version="2.4"

              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">

            <servlet>

              <description>This is the description of my J2EE component</description>

              <display-name>This is the display name of my J2EE component</display-name>

              <servlet-name>ValidateServlet</servlet-name>

              <servlet-class>com.ValidateServlet</servlet-class>

            </servlet>

           

            <servlet-mapping>

              <servlet-name>ValidateServlet</servlet-name>

              <url-pattern>/servlet/ValidateServlet</url-pattern>

            </servlet-mapping>

          </web-app>

          [4]說明:
          你可以在IE或FireFox里測試,在文本輸入框里輸入,當按鍵抬起,會在層中顯示”kill you bush”。其中index.htm中的styles.css只是美化頁面,沒有列出來源代碼。如果在servlet向客戶端輸出中文,需要編碼轉換。

          posted on 2006-02-25 11:17 春雷的博客 閱讀(230) 評論(0)  編輯  收藏 所屬分類: web service


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 佛冈县| 天长市| 华坪县| 莱芜市| 汶上县| 凌海市| 个旧市| 泗阳县| 钟祥市| 富蕴县| 平湖市| 仪陇县| 黄大仙区| 柘荣县| 富平县| 阳泉市| 仙居县| 汉川市| 尖扎县| 观塘区| 田林县| 永平县| 龙川县| 老河口市| 咸丰县| 鹤峰县| 娄烦县| 澄城县| 贞丰县| 莱阳市| 冀州市| 赤水市| 崇阳县| 海淀区| 泸西县| 商都县| 丹江口市| 山丹县| 东山县| 长沙市| 宜君县|