Struts1.3+Ajax用户名验证
一、JSP页面关键代码
<script type="text/javascript">
var xmlhttp;
function verify()
{
var user_id = document.getElementById("user_id").value;
if (window.XMLHttpRequest)
{
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlhttp.overrideMimeType)
{
xmlhttp.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject)
{
//针对IE6,IE5.5,IE5
//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
//排在前面的版本较新
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++)
{
try{
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e){
}
}
}
//确认XMLHTtpRequest对象创建成功
if (!xmlhttp)
{
alert("XMLHttpRequest对象创建失败!!");
return;
}
//2.注册回调函数
xmlhttp.onreadystatechange = callback;
//3。设置连接信息
//xmlhttp.open("GET","AJAXServer?name="+ userName,true);
xmlhttp.open("POST","ajax_server.do",true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send("user_id=" + user_id);
xmlhttp.send(null);
}
function callback()
{
if (xmlhttp.readyState == 4)
{
//判断http的交互是否成功
if (xmlhttp.status == 200)
{
//获取服务漆器端返回的数据
//获取服务器段输出的纯文本数据
var responseText = xmlhttp.responseText;
var divNode = document.getElementById("result");
divNode.innerHTML = responseText;
//divNode.innerHTML = "123";
} else {
alert("网页出错了!!!");
}
}
}
function check()
{
if(document.getElementById("user_id").value=="" || document.getElementById("userpass").value=="")
{
alert("用户名和密码不能为空!");
return false;
}
return true;
}
</script>
</head>
<body>
<html:form action="/reg_personal" method="post" οnsubmit="return check()">
<table border="0">
<tr>
<td>用户名:</td>
<td><html:text property="user_id" /></td>
<td><html:button value="用户名检测" property="reg" οnclick="verify()"/> </td>
</tr>
<tr>
<td>密码:</td>
<td><html:password property="userpass" /></td>
</tr>
<tr>
<td>重复密码:</td>
<td><input type="password" > </td>
</tr>
<tr>
<td>密码提示问题:</td>
<td><html:text property="passwque" /></td>
</tr>
<tr>
<td>密码提示答案:</td>
<td><html:password property="passwresult" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<html:submit>注册</html:submit><div id="result"></div>
</td>
</tr>
</table>
</html:form>
</body>
</html:html>
二、Action关键代码
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
String user_id = request.getParameter("user_id");
response.setContentType("text/html;charset=utf-8");
if(this.all_service.getUserinfo_service().get_userInfo_byID(user_id) != null)
{
response.getWriter().write("用户名已存在!");
}
else {
response.getWriter().write("恭喜您!该用户名可以使用!");
}
return null;
}