刚学javaweb,对java的三大框架SSH(struts spring hibernate)理解不清,师傅就要求我自己搭建个小系统,即平常的登录系统进行研究,把这三大框架融合。
PS: 之前一直认为“struts” 是structs,一个字母之差,截然不同的意义。
尽管现在采用的三大框架各有版本,而且spring mvc 的出现,更是另这三大框架趋于完美。由于公司的这个系统是08年开始做的,采用的框架比较古老。
言归正传,先说说版本。
MyEclipse 5.1.1 GA —— 开发环境
Tomcat 5.0 —— 服务器
mysql-connector-java-5.1.16-bin.jar —— mysql的驱动(应该来说可以用其他版本的,但是自己下的是这个版本)
设计的简单方案如下:
输入正确的 username及password即可进入welcome.jsp的界面,否则进入fail.jsp
,这两个jsp都可以自己定义啦。
大致步骤如下:
一、环境配置
1)建立mysql数据库
采用命令窗口的形式。先建立数据库 :
Create database 数据库;(一定得加分号;)
use 数据库;
建表: CREATE TABLE 表名 (
id INTEGER NOT NULL auto_increment, //id号,赋整值,自动增长
userName VARCHAR(50),
password VARCHAR(50),
PRIMARY KEY (id) //设主键
)DEFAULT CHARSET=gbk;
insert into 表名 values(null,'bill','123'); //这条语句的作用是往建立好的数据表插入一条记录
2)配置数据库的连接
切换到myeclipse database explorer的视图,右键new->
在Driver处选择,点击JDBC ODBC Bridge->edit->Add JARs... 选择mysql的驱动,即 mysql-connector-java-3.0.17-ga.zip,配置URL ,logindemo是自建的数据库名,OK。
回到New Database Connection Profile,username及密码与mysql的一样。
新建web project —— LoginDemo
二、添加SSH的依赖包
添加的顺序是:spring hibernate struts
1、 spring依赖包
spring是1.2版本的,所以勾选4个库AOP 、Core、ORM/DAO/Hibernate3 、Web
选择copy
修改web.xml,需要增加spring的配置,有<context-param>和<servlet-name>
2、 hibernate依赖包
勾选copy->spring configuration file(applicationContext.xml)->Existingspring configuration file , SessionFactory输入sessionFactory->Bean Id: dataSource,
DB Driver选择之前配置的数据库连接,勾选Copy DB driverjars … ->不选create SessionFactory class,finish.
到目录 \LoginDemo\WebRoot\WEB-INF\lib下删除冲突的三个包:
• asm.jar
• asm-attr.jar
• cglib-2.1.3.jar
增加连接池管理包: commons-pool-1.2.jar
3、 添加struts依赖包
选择struts1.2, Base package for new classes:cn.bill.struts
三、编写SSH各层代码
1、hibernate
在DB Browser右键选择Hibernate Reverse Engineering,
这三个勾选是分别 实现 实体映射类*.hbm.xml,PO类、DAO接口,关系到applicationContext.xml->IDGenerator : increment(自动增加),出现的结果是:增加了包名:cn.bill.po,有三个文件:User.java UserDAO.java User.hbm.xml
编写DAO接口,
勾选方法:findByUserName(object)和save(User)。DAO接口是对数据库操作(CRUD:create retrieve update delete)的接口。
new一个dao包,将IuserDAO.java移进去
2、spring
[ctrl+N]Java Interface->UserService接口——提供业务处理对外的接口。
[ctrl+N]Java Class->UserServiceImpl接口实现——提供业务处理,DAO接口成员并生成get set方法
修改applicationContext.xml,增加spring层的service配置
3、 struts
右键->other->struts 1.2 Form, Action & JSP->Login, 填所在的包名(Form), Form properties->Add username和password
填所在的包名(Action) ->Input Source填写/login.jsp
然后编写LoginAction 和 LoginForm
修改struts-config.xml,增加跳转forward
编写三个jsp页面login.jsp welcome.jsp fail.jsp
四、布署网站和测试
在Tomcat下测试运行,运行成功。
注意:1、把User.hbm.xml的catalog属性删除
2、命名要统一,特别是大小写,如userName
3、JSP的taglib版本问题,在form 1.2的情况下,版本要统一。