为了更加的了解SSH框架的搭建流程,我就具体的描述一下
我使用的是eclipse4.6、Tomcat8、JDK1.8,数据库MySQL5.6
我下载的是Struts-2.3.30、Spring-4.2.2、Hibernate5.2.2
我已经给大家整理好所用到的包Struts-2.3.30.rar、Spring-4.2.2.rar、Hibernate5.2.2.rar(单击即可下载)
下载完成后,开始搭建
一、Struts2(MVC)的搭建:
相关描述
Ⅰ.本质上相当于一个Servlet
Ⅱ.不需要手动获取传递参数 (只需要定义声明属性名和设置get、set的方法)、也不需要手动跳转(只需要struts.xml配置相关的路径)
Ⅲ.对项目的分包(例如:dao、service、entity等等),实现MVC模式的开发
Ⅳ.MVC: Action属于Model,而JSP是View页面的展示,其中过滤器起到了Controller的作用
实现流程
1.首先新建一个项目
2.把下载好的Struts-2.3.30解压后,找到struts-2.3.30\apps\ struts2-blank.war \WEB-INF\lib的jar包,复制到项目的WebContent\WEB-INF\lib目录下
3.打开WebContent\WEB-INF\lib\web.xml,定义过滤器,编辑如下
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
在src目录下新建一个类,必须继承ActionSupport父类才是Action类,编辑如下
//默认方法,struts自动调用
public class IndexAction extends ActionSupport {
public String execute() {
//默认返回值
return "success";
}
}
4.在项目的src目录下新建一个struts.xml文件
编辑如下
/WEB-INF/jsp/index.jsp
/WEB-INF/jsp/error.jsp
完成以上流程,基本上Struts2的搭建就ok了
二、Spring(注入实例)的使用:
相关描述
Ⅰ.每一层的代码之间的耦合改为模块(分离/解耦),代码之间互不影响
Ⅱ.不再关注具体的实现类的实例
Ⅲ.更换不同的技术(模块),不需要改动代码,只需要修改applicationContext.xml的相关配置信息
Ⅳ.主要功能IOC(控制反转)松耦合、AOP (面向切面)内聚性
实现流程
1.首先在Struts2搭建基础上,再把下载好的Spring-4.2.2解压后,找到spring-framework-4.2.2.RELEASE\libs的jar包,复制到项目的WebContent\WEB-INF\lib目录下
(注意: 包含
(注意:导入Spring的包还不够,还差了Struts-2.3.30包里的struts-2.3.30-all\struts-2.3.30\apps\struts2-showcase.war\WEB-INF\lib的两个jar包)
2. 编辑web.xml文件,定义监听器 ,添加下列代码
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
3.在src目录下新建applicationContext.xml用作编写Spring
编写如下(注意:本例没有为Action类注入实例,以下注入只提供参考)
//本例没有
public class IndexAction extends ActionSupport {
//声明service,但不给它创建具体的实现类的实例,
private IndexService is = null;
public void setIs(IndexService is) {
this.is = is;
}
}
4.编辑struts.xml文件,添加下列代码(注意:新版本可以不用写,包括本例)
1
2
3
4
改写action里的class属性
1
2
完成以上流程,基本上Struts2-Spring的搭建就ok了
三、Hibernate(数据层)的搭建:
相关描述
Ⅰ.服务器与数据库之间的交互
Ⅱ. Hibernate封装了一系列的JDBC代码,提供相应的方法我们使用,使我们的开发变得简单快捷,效率大大提高
实现流程
1. 首先在Struts2-spring搭建基础上,再把下载好的Hibernate5.2.2解压后,找到hibernate-release-5.2.2.Final\lib\required的jar包,复制到项目的WebContent\WEB-INF\lib目录下(注意:本例使用是MySQL,记得导入对应的数据库驱动包)
2.编写applicationContext.xml文件,添加以下代码,用作描述具体的数据库信息(定义1个sessionFactory,用作于注入)
org.hibernate.dialect.MySQL5Dialect
true
true
false
update
ssh/entity/BookCard.hbm.xml
3.为c3p0数据池导入相应的jar包,在Hibernate5.2.2压缩包hibernate-release-5.2.2.Final\lib\optional\c3p0的3个jar包, 复制到项目的WebContent\WEB-INF\lib目录下(提议:也可以使用..\optional\dbcp的数据池)(区别:c3p0:稳定性、dbcp:速度比较快)
4. 继续编写applicationContext.xml文件,添加以下代码(为sessionFactory注入一个c3p0数据库)
5.第4步也可以替换成,以下写法,先在src目录下创建一个jdbc.properties的文件(用于记录保存数据库相关的信息)
1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/CardDB
3 jdbc.user=root
4 jdbc.password=123456
然后applicationContext.xml文件就可以引用该文件内的参数
1
2
3
4
(注意:引用前提必须要在applicationContext.xml文件里添加以下代码,声明一下引用的文件路径)
1
6.最后在实体类的目录下新建一个实体类.hbm.xml的文件,进行以下编辑