開始學習ajax,在網(wǎng)上找了點材料,整理了下,把一個完整的項目代碼寫上來,記錄一下,高手莫笑哈
頁面端(login.jsp):
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<TITLE>Ajax驗證用戶名是否存在例子</TITLE>
<script>
//設(shè)一個變量
var XMLHttpReq=false;
//創(chuàng)建一個XMLHttpRequest對象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}
else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
}
//發(fā)送請求函數(shù)
function send(url){
createXMLHttpRequest();
XMLHttpReq.open("get",url,true);
XMLHttpReq.onreadystatechange=proce; //指定響應(yīng)的函數(shù)
XMLHttpReq.send(null); //發(fā)送請求
}
function proce(){
if(XMLHttpReq.readyState==4){ //對象狀態(tài)
if(XMLHttpReq.status==200){//信息已成功返回,開始處理信息
<!--測試讀取xml開始-->
var root=XMLHttpReq.responseXML;
var res=root.getElementsByTagName("content")[0].firstChild.data;
window.alert(res);
<!--測試讀取xml結(jié)束-->
//var xmlReturn = XMLHttpReq.responseText;
//window.alert(xmlReturn);
}else{
window.alert("所請求的頁面有異常");
}
}
}
//身份驗證
function check(){
var name=document.getElementById("name").value;
if(name==""){
alert("請輸入姓名!");
return false;
}
else{
//send(‘login?name=‘+name);
document.getElementById("load").style.display=‘‘;
send(‘login.do?name=‘+name);
document.getElementById("load").style.display=‘none‘;
}
}
</script>
</head>
<body>
<form action="login" method="post">
<table>
<tr><td>姓名: <input id="name" type="text" name="name"/><p>
<div id=load style="display:none; position:absolute;right:0px;top:0px;background:#FF5B5B;border:1px solid">正在驗證用戶名,請稍后……</div><p>
<input type="button" value="檢測!" onClick="check()"/>
</td>
</tr>
</table>
</form>
</body>
</html>
structs-config配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts./dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="org.viman.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.viman.struts.action.LoginAction" />
</action-mappings>
<message-resources parameter="org.viman.struts.ApplicationResources" />
</struts-config>
action實現(xiàn)(LoginAction.java):
package org.viman.struts.action;
import java.io.UnsupportedEncodingException;
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.viman.struts.form.LoginForm;
/**
* MyEclipse Struts
* Creation date: 01-06-2007
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
try {
request.setCharacterEncoding("gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try{
String msgStr="";
response.setContentType("text/xml;charset=GB2312");
response.setHeader("Cache-Control","no-cache");
String name=(String)request.getParameter("name");
System.out.println("name = "+name);
if("gong".equals(name)){ //找查數(shù)據(jù)庫中有無該用戶名
msgStr ="對不起,此用戶名已經(jīng)存在,請更換用戶名注冊!";
}else{
msgStr ="用戶未被注冊,可以使用!";
}
response.getWriter().println("<?xml version=‘1.0‘ encoding=‘GB2312‘ ?>");
response.getWriter().println("<root>");
response.getWriter().println("<content>");
response.getWriter().print(msgStr);
response.getWriter().println("</content>");
response.getWriter().println("</root>");
response.getWriter().close();
}catch(Exception ex){
}
return null;
}