您的位置:首页 > 其它

ajax验证用户名是否可用

2008-07-04 16:57 435 查看
Ajax很简单(jsp例子)

首先是jsp页面和脚本,为了方便写在一个里面

这是一个很常见的检测用户名是否存在的功能

这里用的是struts ,可以在路径path中加加上要传的值name 在action中连接数据库 验证是否存在

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

<%@ 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是取得系统路径

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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: