AJAX实现注册

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

这几天没什么事情弄了一个AJAX的注册, 把代码贴出来给大家看看:

<%@ 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>

接受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() {
}
}

你可能感兴趣的:(Ajax,xml,servlet,struts,Webwork)