posts - 0,  comments - 17,  trackbacks - 0
          Ajax應(yīng)用(jsp例子)

          --------------------------------------------------------------------------------

           

          首先是jsp頁面和腳本,為了方便寫在一個里面

          這是一個很常見的檢測用戶名是否存在的功能

          這里用的是struts

          <%@ page contentType="text/html; charset=GBK" %>
          <html>
          <head>
          <title>
          ajax
          </title>
          </head>
          <body bgcolor="#ffffff">
          <h1>
          <input name="username" type="text" maxlength="20" />
          <input id="chk-name-btn" type="button" value="檢測帳號" onclick="testName('<%=request.getContextPath()%>')" />
          <div id="view_name"></div>
          </h1>
          </body>
          </html>
          <script language="javascript">
            if (window.ActiveXObject && !window.XMLHttpRequest) {
                window.XMLHttpRequest=function() {
                return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
             };
            }//取得XMLHttpRequest對象

          function testName(path){

          //path是取得系統(tǒng)路徑
                          var view_name=document.getElementById("view_name");
                var req=new XMLHttpRequest();
                if (req) {
                    req.onreadystatechange=function() {
                     if (req.readyState==4 && req.status==200) {//判斷狀態(tài),4是已發(fā)送,200已完成
                           if(req.responseText==0){
                           view_name.style.color='green';
                          view_name.innerHTML='該用戶名可以正常使用';
                           }else if(req.responseText==1){
                          view_name.style.color='red';
                             view_name.innerHTML='該用戶名已經(jīng)被使用';
                                 }else{
                               view_name.style.color='red';
                               view_name.innerHTML='該用戶名含有非法字符!';
                               }
                           }
                   }
                                  req.open('POST', path+'/ajax.do');//struts

                      //req.open('POST', path+'/ajax.servlet');//servlet

                                  //req.open('POST', path+'/ajax.action');//webwork


                                    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                    req.send("");//發(fā)送參數(shù)如果有參數(shù)req.send("username="+user_name);用request取得
                }
          }
          </script>

          這個jsp頁面并沒有取得用戶名,就是演示一下。還有<div>可以換span,具體作用問美工吧。

          接受ajax請求的action。

          import org.apache.struts.action.*;
          import javax.servlet.http.*;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import java.io.PrintWriter;

          /**
           * <p>Title:AjaxAction </p>
           */

          public class AjaxAction extends Action {
            public ActionForward execute(ActionMapping mapping,
                                         ActionForm form,
                                         HttpServletRequest request,
                                         HttpServletResponse response)
                throws Exception {
              PrintWriter out = response.getWriter();
              out.print(1);//ajax取得都是字符的輸出。如果數(shù)據(jù)量大的話,還可以用xml來發(fā)送和接受
              return null;
            }
          }

          struts-config.xml

              <action type="test.whw.upload.AjaxAction" validate="false" scope="request"  path="/ajax"/>
          ----------------------------

          如果是servlet

          web.xml

           <servlet>
            <servlet-name>AjaxServlet </servlet-name>
            <servlet-class>servlet.AjaxServlet </servlet-class>
           </servlet>
              <servlet-mapping>
                  <servlet-name>AjaxServlet </servlet-name>
                  <url-pattern>/AjaxServlet .servlet</url-pattern>
              </servlet-mapping>

          AjaxServlet.java

          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;



          public class AjaxServlet extends HttpServlet {
           Logger log = Logger.getLogger(this.getClass());
           public void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException,IOException {
            response.setContentType("text/xml; charset=GBK");
            PrintWriter out = response.getWriter();
              out.print(2);
             }
           }
           //Process the HTTP Post request
           public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
            doGet(request, response);
           }

           //Process the HTTP Put request
           public void doPut(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
           }

           //Process the HTTP Delete request
           public void doDelete(HttpServletRequest request,
             HttpServletResponse response) throws ServletException, IOException {
           }

           //Clean up resources
           public void destroy() {
           }
          }

          -------------------------------------

          如果是webwork

          xwork.xml

             <action name="ajax" class="com.whw.upload.action.webwork.AjaxAction" method="ajax"/>


          AjaxAction.java

          import java.io.PrintWriter;

          public class AjexAlbumAction extends ActionSupport implements Action{

            public void ajax()throws IOException {
                       PrintWriter pw = ServletActionContext.getResponse().getWriter();
                      ServletActionContext.getResponse().setContentType("text/html;charset=GBK");
                      pw.print(1);
                      pw.close();
            }


          }

          本例子在winXPsp2、JB9、Eclipse3,j2sdk1.4.1 、Tomcat5、Tomcat4.1都能運行
          posted on 2007-12-18 11:33 xyz 閱讀(496) 評論(0)  編輯  收藏 所屬分類: 他山之石

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


          網(wǎng)站導(dǎo)航:
           

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

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發(fā)環(huán)境. 支持包括 Windows、Linux 和 Mac 系統(tǒng)下運行
          • codelite官網(wǎng)
          • dev-c++
          • Dev-C++是一個C&C++開發(fā)工具,它是一款自由軟件,遵守GPL協(xié)議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

          Cache

          CMS

          DB

          eclipse

          FreeMarker

          hibernate

          html5

          ibatis

          java

          jquery

          js

          json

          Linux

          Log

          mail server

          mobile

          mysql

          oauth

          openID

          other

          PHP

          portal

          report

          Scheduler

          schema

          Security

          SOA

          spring

          struts

          UI原型設(shè)計

          w3c

          Wap

          webservice

          xml

          供應(yīng)鏈管理

          博客鏈接

          好網(wǎng)站

          工作流

          開源網(wǎng)

          招聘

          插件下載

          操作系統(tǒng)

          構(gòu)建可伸縮的系統(tǒng)

          構(gòu)建工具

          測試

          游戲

          源碼托管

          經(jīng)營

          資源

          金融/財務(wù)

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 广南县| 兴和县| 维西| 旬邑县| 始兴县| 巴林左旗| 景谷| 襄樊市| 本溪| 西丰县| 淮滨县| 喀什市| 固镇县| 易门县| 大荔县| 犍为县| 策勒县| 治多县| 云龙县| 乌拉特中旗| 阿拉尔市| 栖霞市| 望江县| 蒙城县| 兴安县| 乌拉特中旗| 内丘县| 扶绥县| 赞皇县| 巢湖市| 信宜市| 阿勒泰市| 英超| 丰顺县| 南木林县| 图们市| 灌云县| 喜德县| 盐边县| 平塘县| 贵港市|