ajax在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="检测帐号" οnclick="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是取得系统路径
                 var view_name=document.getElementById("view_name");
       var req=new XMLHttpRequest();
       if (req) {
           req.onreadystatechange=function() {
            if (req.readyState==4 && req.status==200) {//判断状态,4是已发送,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='该用户名已经被使用';
                        }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("");//发送参数如果有参数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取得都是字符的输出。如果数据量大的话,还可以用xml来发送和接受
     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都能运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值