springhibernatestruts2登录注册的实例.docx
《springhibernatestruts2登录注册的实例.docx》由会员分享,可在线阅读,更多相关《springhibernatestruts2登录注册的实例.docx(22页珍藏版)》请在冰豆网上搜索。
springhibernatestruts2登录注册的实例
开发环境:
Eclipse4.2
Tomcat6.0
Mysql5.5
工程的结构图如下:
导入strut2的.jar包
还有
这个包是和spring结合的时候用的。
Hibernate的,jar包
不要忘了数据库的驱动包
Spring.jar包
全局web.xml文件
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http:
//www.w3.org/2001/XMLSchema-instance"xmlns="xmlns:
web="xsi:
schemaLocation="id="WebApp_ID"version="2.5">
struts2_spring_hibernate
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
login.jsp
contextConfigLocation
classpath:
applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
视图层login.jspregister.jsplogin_success.jsp
login.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
Inserttitlehere用户注册|用户登录
formaction="login"theme="simple">
right">用户名
textfieldname="name"label="用户名"/> |
right">密码
passwordname="pwd"label="密码"/> |
right">
submitvalue="登录"/>
left">
resetvalue="取消"/>
|
form>
fielderrorcssStyle="color:
red"/>
register.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
Inserttitlehere用户登录|用户注册
formaction="register"theme="simple">
right">
请输入账号
textfieldname="name"label="账号"/>
|
right">
请输入密码
passwordname="pwd"label="密码"/>
|
right">
请再次输入密码
passwordname="repwd"label="重复密码"/>
|
right">
submitvalue="注册"/>
left">
resetvalue="取消"/>
|
form>
fielderrorcssStyle="color:
red"/>
login_success.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
Inserttitlehere${request.name},登录成功!
控制层:
struts.xml文件和action文件
Struts.xml
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
这里不是真正类的路径而是给spring管理路径和applicationContext.xml文件相对应的
/login_success.jsp
/login.jsp
这里不是真正类的路径而是给spring管理路径和applicationContext.xml文件相对应的
/login_success.jsp
这里有两个Action文件
LoginAction.java
packagecom.cong.action;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.struts2.ServletActionContext;
importcom.cong.entity.User;
importcom.cong.service.UserService;
importcom.opensymphony.xwork2.ActionSupport;
publicclassLoginActionextendsActionSupport{
privateUserServiceuserServiceImpl;
privateUseruser;
publicvoidsetUser(Useruser){
this.user=user;
}
publicvoidsetUserServiceImpl(UserServiceuserServiceImpl){
this.userServiceImpl=userServiceImpl;
}
privateStringname;
privateStringpwd;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPwd(){
returnpwd;
}
publicvoidsetPwd(Stringpwd){
this.pwd=pwd;
}
publicStringexecute(){
HttpServletRequestrequest=ServletActionContext.getRequest();
System.out.println(name);
intstate=userServiceImpl.isExist(name,pwd);
System.out.println("state="+state);
if(state==-1){
this.addFieldError("name","用户名不正确,请先注册!
");
returnINPUT;
}elseif(state==-2){
this.addFieldError("pwd","密码不正确,请重新输入密码!
");
returnINPUT;
}elseif(state>0){
System.out.println("[测试]登录成功!
用户ID="+state);
returnSUCCESS;
}else{
this.addFieldError("name","登录失败,请与管理员联系!
");
returnINPUT;
}
RegisterAction.java
packagecom.cong.action;
importcom.cong.entity.User;
importcom.cong.service.UserService;
publicclassRegisterAction{
privateStringname;
privateStringpwd;
privateUseruser;
privateUserServiceuserServiceImpl;
publicUserServicegetUserServiceImpl(){
returnuserServiceImpl;
}
publicvoidsetUserServiceImpl(UserServiceuserServiceImpl){
this.userServiceImpl=userServiceImpl;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPwd(){
returnpwd;
}
publicvoidsetPwd(Stringpwd){
this.pwd=pwd;
}
publicUsergetUser(){
returnuser;
}
publicvoidsetUser(Useruser){
this.user=user;
}
publicStringexecute()throwsException{
user.setName(name);
user.setPwd(pwd);
userServiceImpl.addUser(user);
return"success";
}
}
Model:
User.java
packagecom.cong.entity;
importjava.io.Serializable;
publicclassUserimplementsSerializable{
privateintid;
privateStringname;
privateStringpwd;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetPwd(){
returnpwd;
}
publicvoidsetPwd(Stringpwd){
this.pwd=pwd;
}
}
User.hbm.xml
xmlversion="1.0"encoding="utf-8"?
>
DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"
--Generated2012-7-3012:
19:
15byHibernateTools3.4.0.CR1-->
DAO层:
UserDao.java(interface)
packagecom.cong.dao;
importcom.cong.entity.User;
publicinterfaceUserDao{
publicvoidaddUser(Useruser);
publicintisExist(Stringname,Stringpwd);
}
UserDaoImpl.java
packagecom.cong.dao.impl;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.springframework.orm.hibernate3.HibernateCallback;
importorg.springframework.orm.hibernate3.HibernateTemplate;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importcom.cong.dao.UserDao;
importcom.cong.entity.User;
publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{
@Override
publicvoidaddUser(Useruser){
this.getHibernateTemplate().save(user);
}
publicintisExist(Stringname,Stringpwd){
finalStrings1=name;
finalStrings2=pwd;
Listlist=newArrayList();
list=(ArrayList)this.getHibernateTemplate().execute(
newHibernateCallback(){
@Override
publicObjectdoInHibernate(Sessionsession)
throwsHibernateException,SQLException{
System.out.println(session.createQuery("fromUseruwhereu.name='"+s1+"'").list());
returnsession.createQuery("fromUseruwhereu.name='"+s1+"'").list();
}
});if(null==list||0==list.size()){
return-1;//用户名不存在
}
list=(ArrayList)this.getHibernateTemplate().execute(
newHibernateCallback(){
publicObjectdoInHibernate(Sessionsession)throwsHibernateException,SQLException{
returnsession.createQuery("fromUseruwhereu.name='"+s1+"'andu.pwd='"+s2+"'").list();
}
});
if(null==list||0==list.size()){
return-2;//密码不正确
}
Iteratorit=list.iterator();
Useruser=(User)it.next();
returnuser.getId();
}
}
}
}
Service层:
UserService.java(interface)
packagecom.cong.service;
importcom.cong.entity.User;
publicinterfaceUserService{
publicvoidaddUser(Useruser);
publicintisExist(Stringname,String