一、SSH框架
1、Struts框架
① params拦截器: 请求数据封装
② 类型转换/数据处理
③ struts配置
④ 文件上传/下载/国际化处理
⑤ 数据效验/拦截器
⑥ Ognl表达式
⑦ 数据回显/模型驱动/防止表单重复提交
2、Hibernate框架
① Api简介
② 映射
◆ 多对一/一对多: 部门与员工
◆ 多对多/一对一
◆ 集合映射/组件映射/继承映射
③ Hibernate 缓存
④ 常用属性:inverse/lazy/cascade
⑤ 对象状态:临时/持久/游离
3、Spring框架
① Spring IOC容器 【Inversion Of Control,即控制反转】
创建对象/处理对象依赖关系
② Aop编程
③ Spring声明式事务管理
④ 框架整合
◆ Spring与Struts
◆ Spring与Hibernate
⑤ Spring对jdbc、hibernate操作的封装
JdbcTemplate (dataSource)/ HibernateTemplate(SessionFactory)
二、SSH整合
1、分成两部分
Spring与Struts整合
Spring与Hibernate整合
2、整合步骤
① 引入SSH Jar文件
【struts相关jar】
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.1.jar
xwork-core-2.3.4.1.jar
【hibernate 相关 jar】
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
【Spring-core】核心功能
commons-logging-1.1.3.jar
spring-beans-3.2.5.RELEASE.jar
spring-context-3.2.5.RELEASE.jar
spring-core-3.2.5.RELEASE.jar
spring-expression-3.2.5.RELEASE.jar
【Spring-web】 对web模块支持
spring-web-3.2.5.RELEASE.jar
struts2-spring-plugin-2.3.4.1.jar
【Spring-Aop】aop支持
aopalliance.jar
aspectjrt.jar
aspectjweaver.jar
spring-aop-3.2.5.RELEASE.jar
【Spring-orm】对hibernate支持
c3p0-0.9.1.2.jar
mysql-connector-java-5.1.12-bin.jar
spring-orm-3.2.5.RELEASE.jar
spring-tx-3.2.5.RELEASE.jar
spring-jdbc-3.2.5.RELEASE.jar
其他【Spring-Jdbc/tx】jdbc支持包、事务相关包
② 配置
◆ Web.xml:初始化struts功能、spring容器
◆ Struts.xml:配置请求路径与映射action的关系
◆ Spring.xml:IOC容器配置
◇ bean-base.xml 【公用信息】
◇ bean-service.xml
◇ bean-dao.xml
◇ bean-action.xml
③ 开发:Entity/Dao/service/action
3、设计
① 系统设计:搭建系统框架结构(基于mvc结构应用)
② 确定项目的关键点/难点
③ 确定引用组件、公用类的版本
◆ Struts2.3
◆ Hibernate3.6
◆ Spring3.2
4、数据库设计
管理员表:t_admin
员工表:t_employee
部门:t_dept
5、编码顺序
① 设计数据库:ssh_demo
建表: t_admin/t_employee/t_dept
② 建立web项目、引入jar文件、准备环境……
③ 设计javabean、写映射
Admin.java:封装管理员
Employee.java:员工
Dept.java:部门
Admin.hbm.xml
Employee.hbm.xml
Dept.hbm.xml
④ Dao设计接口
AdminDao.java 管理员模块
void save(Admin admin);
Admin findByAdmin(Admin admin);
DeptDao.java 部门模块
List<Dept> getAll();
Dept findById(int id);
EmployeeDao.java 员工模块
Void save(Employee emp);
Void update(Employee emp);
Void delete(int id);
Employee findById(int id);
List<Employee> getAll();
List<Employee> getAll(String employeeName);
⑤ Dao接口实现
⑥ Service接口设计
AdminService.java 管理员模块
void register(Admin admin);
Admin login(Admin admin);
⑦ Service接口实现
⑧ Action实现
EmployeeAction.java 员工模块
AdminAction.java 管理员模块
⑨ jsp页面
Index.jsp/list.jsp 首页列表
http://localhost:8080/项目 首页列表
优化部分:
⑩ 用户登陆拦截器
UserInterceptor.java:检查是否登陆,只有登陆才能操作,否则只能查看
⑪ Dao 操作优化
BaseDao.java:所有dao的通用方法,dao都必须继承此类(反射泛型)