您的位置:首页 > 其它

用户名邮箱唯一验证 ---ajax

2013-03-31 17:44 239 查看
ajax实现用户名和邮箱的唯一的验证

采用struts2+hibernate+ajax实现user用户注册时用户名和邮箱的唯一验证

index.jsp的源代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

< %@ taglib uri="/struts-tags" prefix="s"%>

< %

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

< html>

< head>

< base href="<%=basePath%>">

<title>用户注册</title>

< meta http-equiv="pragma" content="no-cache">

< meta http-equiv="cache-control" content="no-cache">

< meta http-equiv="expires" content="0">

< meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

< meta http-equiv="description" content="This is my page">

< !--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

< script type="text/javascript"

src="${pageContext.request.contextPath }/js/util.js"></script>

< script type="text/javascript"

src="${pageContext.request.contextPath }/js/reg.js"></script>

< /head>

<body>

<div align="center">

<h3>注册页面</h3>

<s:form action="AdminAction_reg" namespace="/csdn" theme="simple">

<table bordercolor="red" width="450px">

<tr>

<td width="100px">用户名:</td>

<td width="200px"><s:textfield name="adminName" id="adminName"></s:textfield>

</td>

<td width="150px"><font color="red"><span id="cname"></span></font></td>

</tr>

<tr>

<td>密码:</td>

<td><s:password name="adminPass" id="adminPass"></s:password>

</td>

<td></td>

</tr>

<tr>

<td>邮箱:</td>

<td><s:textfield name="adminEmail" id="adminEmail"></s:textfield>

</td>

<td><font color="red"><span id="cmail"></span></font></td>

</tr>

<tr align="center">

<td colspan="3"><s:submit value="注册" />

</td>

<td></td>

</tr>

</table>

</s:form>

</div>

< /body>

< /html>

reg.js(验证)文件的源代码:

window.onload = function() {

var name = $("adminName");

var email = $("adminEmail");

name.onblur = function() {

changeblur("cname", "name", name);

};

email.onblur = function() {

changeblur("cmail", "email", email);

};

};

function changeblur(msg, type, btn) {

var xhr = createXHR();

xhr.onreadystatechange = function() {

if (xhr.readyState == 4) {

if (xhr.status == 200 || xhr.status == 304) {

$(msg).innerHTML = xhr.responseText;

}

}

};

var url = "./csdn/AdminAction_check.action?time=" + new Date().getTime();

xhr.open("POST", url, true);

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

var content = type + "=" + btn.value;

xhr.send(content);

}

util.js(工具js)文件的源代码:

function $(id) {

return document.getElementById(id);

}

function createXHR() {

var xmlHttpRequest;

var aVersion = [ "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",

"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ];

try {

xmlHttpRequest = new XMLHttpRequest();

} catch (ex) {

for ( var i = 0; i < aVersion.length; i++) {

try {

xmlHttpRequest = new ActiveXObject(aVersion[i]);

return xmlHttpRequest;

} catch (ex) {

continue;

}

}

}

return xmlHttpRequest;

}

AdminAction.java文件的源代码:

package www.csdn.net.action;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import www.csdn.net.service.AdminService;

import www.csdn.net.service.AdminServiceImpl;

import com.opensymphony.xwork2.ActionSupport;

/**

* AdminAction 2013-3-13 下午4:42:14

*

* @author 乔晓松

*

*/

public class AdminAction extends ActionSupport {

/**

*

*/

private static final long serialVersionUID = 1L;

private String name;

private long time;

private String email;

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public long getTime() {

return time;

}

public void setTime(long time) {

this.time = time;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String reg() {

return "reg";

}

public String check() {

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html;charset=utf-8");

PrintWriter out = null;

try {

out = response.getWriter();

} catch (IOException e) {

e.printStackTrace();

}

AdminService adminService = new AdminServiceImpl();

boolean flag = false;

String msg = null;

if (name != null && !name.equals("")) {

flag = adminService.check("aname", name);

msg = "用户名";

} else if(email != null && !email.equals("")){

flag = adminService.check("aemail", email);

msg = "邮箱";

}

//System.out.println(flag);

if (flag) {

out.print(msg+"已存在!");

} else {

out.print(msg+"可以使用!");

}

out.flush();

out.close();

return "reg";

}

}

struts2.xml文件的源代码:

<?xml version="1.0" encoding="UTF-8"?>

< !DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

< struts>

<include file="struts-constant.xml" />

<package name="test" namespace="/csdn" extends="struts-default">

<action name="AdminAction_*" class="www.csdn.net.action.AdminAction"

method="{1}">

<result name="reg" type="plainText">

<param name="location">/sc.jsp</param>

<param name="charSet">UTF-8</param>

</result>

</action>

</package>

< /struts>

AdminDaoInpl.java文件的源代码:

package www.csdn.net.dao;

import org.hibernate.Criteria;

import org.hibernate.criterion.Restrictions;

import www.csdn.net.domain.Admin;

import www.csdn.net.utils.BaseHibernateDao;

import www.csdn.net.utils.HibernateSessionFactory;

/**

* AdminDaoImpl 2013-3-13 下午4:44:29

*

* @author 乔晓松

*

*/

public class AdminDaoImpl extends BaseHibernateDao implements AdminDao {

public boolean check(String type, String value) {

boolean flag = false;

try {

Criteria criteria = getSession().createCriteria(Admin.class);

criteria.add(Restrictions.eq(type, value));

if (criteria.list().size() > 0) {

flag = true;

}

return flag;

} catch (Exception e) {

e.printStackTrace();

throw new RuntimeException(e);

} finally {

HibernateSessionFactory.closeSession();

}

}

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