您的位置:首页 > 编程语言 > Java开发

javaweb基础----ajax+Hibernate验证用户名是否已被注册

2017-04-28 00:23 489 查看
先了解ajax在本次实验中的大概跳转流程:

表单用户名输入框onblur时触发check(form.name)脚本函数----在函数中被指定跳转到checkUser.jsp----在checkUser.jsp中实例化checkName这个类,这个类中含有从是数据库中查找的方法check();

1.表单的书写:

<div class="form-group">
<label for="username">用户名</label><input type="text" required class="form-control" id="username" name="name" onblur="check(this.value)"/>
<span id="showinfo"></span>
</div>

2.把ajax重构文件引入页面,并且实例化对象,重新回调函数和错误处理函数:
<script type="text/javascript" src="js/jquery-2.1.3.js"></script>
<script type="text/javascript" src="js/AjaxRequest.js"></script>
<script>
function onerror(){
alert("你的操作有误!");
}
function check(userName){
var http_request=new net.AjaxRequest("checkUser.jsp?name="+userName,getResult,onerror,"GET");

}
function getResult(){
alert(this.req.responseText);
}
</script>

3.checkUser.jsp

<body>
<%String username=request.getParameter("name");
checkName name=new checkName();
int flag=name.check(username);
if(flag==1){
out.print("改用户名已被注册");

}
else{
out.println("恭喜你,该用户还没被注册!");}
%>
</body>

4.checkName.class
package model;

import init.HibernateSessionFactory;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class checkName {
public int check(String user){
Session session = null;
Transaction tran=null;
try{

session =HibernateSessionFactory.getSession();

tran=session.beginTransaction();
String hql="select name from TbUser";
Query q=session.createQuery(hql);
List useres=q.list();
Iterator it=useres.iterator();
while(it.hasNext()){
Object username=(Object)it.next();
username=(String)username;
System.out.println(username);
System.out.println(user+"svdcs");
if(user.equals(username)){
tran.commit();
return 1;
}

}
}
catch (Exception e) {
e.printStackTrace();
tran.rollback();// 事务回滚
} finally {
HibernateSessionFactory.closeSession();// 关闭Session
}
return 0;
}

}


就这样就可以完成验证了,当然struts也有丰富的验证机制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: