SSH系列一:实现用户登录模块
2016-11-06 22:38
375 查看
一、简介:用户登录模块,用户输入用户名和密码,对其身份进行验证
二、简单思路和方法(基于Java ssh框架实现)
1、先在数据库中创建相应的表(我用的是MySQL数据库)
设计个Userinfo表,存放用户的用户名、登录密码和用户信息
2、用Myeclipse的hibernate生成Javabean:UserInfo.java和对应的配置文件UserInfo.hbm.xml文件(自带的逆向工具)(必须在同一个包下)
UserInfo.java代码
UserInfo.hbm.xml代码
3、创建UserInfoServiceDAO接口
4、创建UserInfoServiceDAOImpl实现类
实现UserInfoServiceDAO的方法
5、编写action动作代码:UserInfoAction.java
只有验证用户登录和更新action动作,其他功能略
6、applicationContext.xml修改(驱动一般也需要添加)
spring依赖注入
7、struts.xml部分添加,action属性和result返回
8、jsp前台页面,简单登录界面,其他略
二、简单思路和方法(基于Java ssh框架实现)
1、先在数据库中创建相应的表(我用的是MySQL数据库)
设计个Userinfo表,存放用户的用户名、登录密码和用户信息
create table userinfo ( id int(11) primary key, username varchar2(50) not null, password varchar2(50) not null, real_name varchar2(10) not null, birthday varchar2(40), e_mail varchar2(40), address varchar2(50) );
2、用Myeclipse的hibernate生成Javabean:UserInfo.java和对应的配置文件UserInfo.hbm.xml文件(自带的逆向工具)(必须在同一个包下)
UserInfo.java代码
public class UserInfo { private int id; private String username; private String password; private String real_name; private String birthday; private String e_mail; private String address; //默认的构造方法 public UserInfo() { } // 方便测试用 public UserInfo(String username, String password, String real_name,String birthday,String e_mail,String address) { this.username = username; .... } //省略成员变量的set和get方法 }
UserInfo.hbm.xml代码
<hibernate-mapping> <class name="com.bean.UserInfo" table="userinfo"> <!--id 数据库主键--> <id name="id" type="int" column="Id"> <generator class="native"/><!--native主键自增长--> </id> <property name="username" type="java.lang.String" column="username"/> <property name="password" type="java.lang.String" column="password"/> <!--其他属性省略--> </class> </hibernate-mapping>
3、创建UserInfoServiceDAO接口
public interface UserInfoServiceDAO { public UserInfo loginUser(User user);//通过页面传值进行数据库验证 //这里的user只封装两个值,用户名和密码;user是封装了用户名和密码两个属性进行查询 public boolean updatePwd(UserInfo userInfo);//进行用户数据的更新 /* *添加新用户,删除就用户等略,自行添加 */ }
4、创建UserInfoServiceDAOImpl实现类
实现UserInfoServiceDAO的方法
public class UserInfoServiceDAOImpl implements UserInfoServiceDAO { private SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } // 查询数据库中是否有该用户 返回数据库查询的整条信息 @Override public UserInfo loginUser(User user) { Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); Query query = session .createQuery("from UserInfo as u where u.username='" + user.getUsername() + "' and u.password='" + user.getPwd() + "'"); List<UserInfo> list = query.list(); //if检查是否查到数据,如果长度为0(list.size()为0),则未查到信息 if (list.size() != 0) { UserInfo userInfo1 = list.get(0); transaction.commit(); session.close(); return userInfo1; } else { transaction.commit(); session.close(); return null; } } //进行用户数据的更新 @Override public boolean updatePwd(UserInfo userInfo) { Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session.saveOrUpdate(userInfo); transaction.commit(); session.close(); return true; } }
5、编写action动作代码:UserInfoAction.java
只有验证用户登录和更新action动作,其他功能略
//User只有username和pwd属性 //ModelDriven<User>前台传值的一个接口 public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); private UserInfoServiceDAO userInfoServiceDAOImpl; //省略get、set方法 /* *1、execute()继承ActionSupport,重写 *2、logOut()用户注销 */ @Override//用户登录 public String ex b298 ecute() throws Exception { Map session = (Map) ActionContext.getContext().getSession(); UserInfo userInfo = userInfoServiceDAOImpl.loginUser(user); if (user.getUsername() == null&&userInfo==null){ this.addActionMessage("用户名或密码不正确"); return ERROR; }else{ session.put("userInfo", userInfo);// session.put("key",value); return SUCCESS; } } //用户注销 public String logOut() throws Exception { Map session = (Map) ActionContext.getContext().getSession(); session.remove("userLogin"); return SUCCESS; } }
6、applicationContext.xml修改(驱动一般也需要添加)
spring依赖注入
<bean id="userInfoServiceDAOImpl" class="com.dao.impl.UserInfoServiceDAOImpl"> <property name="sessionFactory" ref="sessionFactory"> </property> </bean> <bean id="userAction" class="com.action.UserAction"> <property name="userInfoServiceDAOImpl" ref="userInfoServiceDAOImpl" /> </bean>
7、struts.xml部分添加,action属性和result返回
<!-- 1、index.jsp首页:登录成功返回首页 2、error.jsp登录错误界面:如果用JavaScript可以不用这个。未输入用户名或未在数据库查询到信息 --> <!-- 用户登陆界面,用户名、密码两个参数 --> <action name="slogin" class="userAction"> <result>/index.jsp</result> <result name="error">/error.jsp</result> </action> <!-- 用户注销 --> <action name="logOut" class="userAction" method="logOut"> <result>/index.jsp</result> </action>
8、jsp前台页面,简单登录界面,其他略
<!--添加struts2标签的的支持,在struts2的jar包中。插入页面开头--> <%@taglib prefix="s" uri="/struts-tags"%>
<s:form method="post" action="slogin"> <!--这里值被后台的ModelDriven<User>接受,封装成User类型--> <s:textfield label="用户名" name="username" /> <s:password label="密码" name="pwd" /> <s:actionmessage /><!--当出现错误时,显示。可省略--> <s:submit value="确认" class="btnsubmit" /> </s:form>
相关文章推荐
- Java SSH框架系列:用户登录模块的设计与实现思路
- Java SSH框架系列:用户登录模块的设计与实现思路
- eShop电子商城的SSH实现的用户模块(1)登录和注册配置文件和页面关键代码(V...
- eShop电子商城的SSH实现的用户模块(1)登录和注册Bean(Version 1.0)
- Java SSH框架系列:用户登录模块的设计与实现思路
- Struts 2.1.6 精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON)
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- java_web用户的自动登录模块的实现
- 普通用户实现ssh无密码登录
- python实现用户登录功能模块
- java_web用户的自动登录模块的实现
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板
- java_web用户的自动登录模块的实现
- 基于Struts实现用户登录和注册模块
- java_web用户的自动登录模块的实现
- 活动目录实战系列十一(脚本实现用户登录显示信息)
- Struts 2.1.6 精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON)
- 三层架构——系统用户登录模块功能实现
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板
- 用户登录模块的实现过程