<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    基于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 劉錚 閱讀(283) 評論(0)  編輯  收藏 所屬分類: Struts


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


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

    導(dǎo)航

    統(tǒng)計

    留言簿(1)

    文章分類(141)

    文章檔案(147)

    搜索

    最新評論

    主站蜘蛛池模板: 中文字幕亚洲第一| 亚洲免费在线观看| 91在线精品亚洲一区二区| 一级毛片免费视频网站| 免费人成视频在线观看视频| 亚洲国产精品成人综合色在线| 成年人性生活免费视频| 亚洲欧美日韩国产成人| 国产精品四虎在线观看免费| 老司机福利在线免费观看| 全黄a免费一级毛片人人爱| 日日狠狠久久偷偷色综合免费| 又黄又爽无遮挡免费视频| 国产精品久久久久久亚洲小说 | 国产精品成人免费福利| 亚洲无线电影官网| 国产精品永久免费10000| 亚洲人成网站999久久久综合| 热久久精品免费视频| 亚洲av无码专区在线电影 | 永久免费av无码入口国语片| 久久精品国产亚洲AV麻豆不卡| 99热这里只有精品免费播放| 亚洲国产人成在线观看| 成人免费在线视频| 曰韩无码AV片免费播放不卡| 亚洲av之男人的天堂网站| 又粗又大又黑又长的免费视频 | 一级黄色毛片免费看| 亚洲日韩精品A∨片无码| 免费观看91视频| 亚洲熟妇AV一区二区三区宅男| 国产成人免费片在线观看| jizz在线免费播放| 亚洲视频日韩视频| 又大又粗又爽a级毛片免费看| a级毛片在线免费| 日本亚洲色大成网站www久久 | 国产乱子伦精品免费视频| 日产亚洲一区二区三区| 精品国产一区二区三区免费看|