1.表单:一个简单的表单
<form action="userAction!login" method="post">
用户名:<input type="text" name="name" required />
密码:<input type="password" name="pwd" required />
<button value="登陆" />
2.建立一个类,主要是用于从数据库中取出对应用户名的密码,进行比较验证。这里举例一个checkName.class.在里面写一个judge()方法:
public int judge(String user,String pwd){
Session session = null;
Transaction tran=null;
boolean flag=false;
try{
session =HibernateSessionFactory.getSession();
tran=session.beginTransaction();
String hql="select pwd from TbUser where name=?";
Query q=session.createQuery(hql);
q.setParameter(0, user);
List pwds=q.list();
Iterator it=pwds.iterator();
while(it.hasNext()){
Object password=(Object)it.next();
password=(String)password;
if(password.equals(pwd)){
tran.commit();
return 1;
}
}
}
catch (Exception e) {
e.printStackTrace();
tran.rollback();// 事务回滚
} finally {
HibernateSessionFactory.closeSession();// 关闭Session
}
return 0;
}
}
上面我把judge方法列举出来,可以看到我使用了Hibernate从数据库中取出了密码
3.在第一步中,我们的表单提交到了userAction中,所以我们这一步是建立userAction继承于ActionSupport。在userAction中写一个login()方法:
public String login(){
checkName check=new checkName();
int flag=check.judge(name,pwd);
if(flag==1){
return "loginSuccess";
}
else{
return "loginError";
}
}
4.在上面代码不难看出,我们是调用了checkName类中的judge()方法。当用户名和密码匹配时返回“loginSuccess”字符串,当用户名和密码不匹配时,返回"loginError"字符串。在这一步,我们需要去配置struts.xml:
<package name="myPackage" extends="struts-default">
<action name="userAction" class="action.userAction">
<result name="loginSuccess">/loginSuccess.jsp</result>
<result name="loginError">/loginError.jsp</result>
</action>
</package>
在struts.xml中使用的是动态Action。
以上就可以简单地实现验证用户名和密码!