基于Struts的AJAX

          首先,我們?nèi)匀皇菍truts應(yīng)用來做配置,仍然是在struts-config,xml文件里做配置,如下:

           <action type="com.ajax.CheckAction"
               scope="request" path="/ajax/check">
               <forward name="success" path="/check.jsp"/>
           </action>


          跟普通的Struts應(yīng)用的配置一樣,只是沒有ActionForm的配置。下面是Action類:

           package com.ajax;
           
           import java.io.PrintWriter;
           
           import javax.servlet.http.HttpServletRequest;
           import javax.servlet.http.HttpServletResponse;
           
           import org.apache.struts.action.Action;
           import org.apache.struts.action.ActionForm;
           import org.apache.struts.action.ActionForward;
           import org.apache.struts.action.ActionMapping;
           import org.apache.struts.action.DynaActionForm;
           
           /**
            * @author Administrator
            *
            * TODO To change the template for this generated type comment go to
            * Window - Preferences - Java - Code Style - Code Templates
            */
           public class CheckAction extends Action
           {
            public final ActionForward execute(ActionMapping mapping, ActionForm form,
                     HttpServletRequest request,
                     HttpServletResponse response)
             throws Exception
             {
            System.out.println("haha...............................");
            String username= request.getParameter("username");
            System.out.println(username);
            String retn;
            if("educhina".equals(username)) retn = "Can't use the same name with the old use,pls select a difference...";
            else retn = "congraducation!you can use this name....";
            PrintWriter out=response.getWriter();
                     out.write(retn);
                     out.close();
            return mapping.findForward("success");
             }
            public static void main(String[] args)
            {
            }
           }

          我們可以看到里面的邏輯跟上例中Servlet里的邏輯一樣。最后,我們來看看JSP:

           <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           <html>
           <head>
           <title>Check.html</title>
           
           <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
           <meta http-equiv="description" content="this is my page">
           
           <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
           
           </head>
           <script type="text/javascript">
            var http_request = false;
            function send_request(url) {//初始化、指定處理函數(shù)、發(fā)送請求的函數(shù)
             http_request = false;
            
          file://開始初始化XMLHttpRequest對象
             if(window.XMLHttpRequest) {
          file://Mozilla 瀏覽器
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {//設(shè)置MiME類別
             http_request.overrideMimeType('text/xml');
            }
             }
             else if (window.ActiveXObject) { // IE瀏覽器
            try {
             http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
             try {
              http_request = new ActiveXObject("Microsoft.XMLHTTP");
             } catch (e) {}
            }
             }
             if (!http_request) { // 異常,創(chuàng)建對象實例失敗
            window.alert("不能創(chuàng)建XMLHttpRequest對象實例.");
            return false;
             }
             http_request.onreadystatechange = processRequest;
             // 確定發(fā)送請求的方式和URL以及是否同步執(zhí)行下段代碼
             http_request.open("GET", url, true);
             http_request.send(null);
            }
            // 處理返回信息的函數(shù)
             function processRequest() {
                 if (http_request.readyState == 4) { // 判斷對象狀態(tài)
                     if (http_request.status == 200) { // 信息已經(jīng)成功返回,開始處理信息
                         alert(http_request.responseText);
                     } else {
          file://頁面不正常
                         alert("您所請求的頁面有異常。");
                     }
                 }
             }
            function userCheck() {
             var f = document.forms[0];
             var username = f.username.value;
             if(username=="") {
            window.alert("The user name can not be null!");
            f.username.focus();
            return false;
             }
             else {
            send_request('ajax/check.do?username='+username);
             }
            }
           
           </script>
           <body>
            <form name="form1" action="" method="post">
           User Name:<input type="text" name="username" value="">&nbsp;
           <input type="button" name="check" value="check" onClick="userCheck()">
           <input type="submit" name="submit" value="/oblog312/submit">
           </form>
           </body>
           </html>

          我們可以看到,JSP基本是一樣的,除了要發(fā)送的url:ajax/check.do?username="+username。 

          posted on 2007-08-13 17:24 劉錚 閱讀(286) 評論(0)  編輯  收藏 所屬分類: Struts


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


          網(wǎng)站導(dǎo)航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          留言簿(1)

          文章分類(141)

          文章檔案(147)

          搜索

          最新評論

          主站蜘蛛池模板: 蒙阴县| 鹤岗市| 栖霞市| 眉山市| 五河县| 金门县| 饶平县| 玉林市| 台南市| 股票| 尉犁县| 个旧市| 邛崃市| 临沂市| 侯马市| 瓮安县| 龙口市| 建宁县| 民乐县| 新民市| 双牌县| 怀来县| 渝北区| 明星| 潍坊市| 钟祥市| 多伦县| 文山县| 华阴市| 石城县| 桂阳县| 呈贡县| 伊宁县| 宁强县| 兰州市| 泸溪县| 通城县| 宿迁市| 瓦房店市| 平昌县| 厦门市|