通过前两天hibernate和struts2框架的学习,今天将两个框架整合搭建一个项目,做一个简单的用户注册登陆demo。
1.项目创建及jar包导入:
新建Dynamic Web project,直接把前两天的hibernate和struts2demo的jar包导入到今天项目的WEB-INF/lib下。
2.配置框架的xml文件:
(1)Struts2配置两个xml:struts.xml和web.xml(过滤器的配置)
(2)Hibernate配置两个xml:核心配置文件hibernate.cfg.xml和关系对象映射xml。
3.实体类以及连接数据库CRUD操作类:
实体类略;
数据库连接由于在hibernate中已经配置好类,所以不用再写代码;
编写DAO类实现对数据库的CRUD操作:
注册新用户用session.save()方法、由于session的get/load方法只支持根据主键id查询,所以这里登陆验证查询我使用SQLQuery进行原生SQL查询,根据返回的结果集是否为空判断用户输入的账户密码是否正确,代码如下:
SQLQuery sql = session.createSQLQuery("select * from t_user where username='"
+ user.getUsername()+ "' and password='"+user.getPassword()+ "'");
sql.addEntity(User.class);
List list=sql.list();
boolean flag = !list.isEmpty();
return flag;
4.编写action代码:
新建action包,新建UserAction.class并让它继承ActionSupport并实现ModelDriven接口(模型驱动)。
这里为UserAction创建了两个方法login()和add(),分别实现登陆和注册功能。其中login()返回值为SUCCESS和ERROR,add()返回一个String“add”。
5.在struts.xml文件中配置UserAction:
6.编写要用到到JSP页面
login.jsp:注意form表单的action值与struts.xml文件中相对应
success.jsp:
error.jsp:略
7.运行项目:
(1)进入login.jsp输入用户名&密码,若与MySQL数据库匹配则进入success.jsp,否则跳转至error.jsp。用户登陆功能测试成功。
(2)进入login.jsp点击“新用户注册”按钮进入注册界面,输入用户名&密码点击注册,进入数据库查看有相关记录,用户注册功能测试成功。