ssh框架简述
Struts对Model,View和Controller都提供了对应的组件。
在右图中,ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。
Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。
Spring是一个开源框架,它由Rod Johnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制.
SSH框架的基本步骤是什么?
spring是为了把hibernate和struts结合在一起用的
它拦截了struts的请求,处理一下,(也就是做了IOC),再交还给struts
在hibernate方面,是拦截了hibernate请求数据库的DAO,并做了处理(IOC)。
别的框架估计你也应该清楚了。
struts是为了做mvc的,hibernate是为了做持久化的
搭建ssh框架步骤
搭建struts应用
2.1 引入需要的jar包
mons-fileupload-1.2.1.jar 文件上传
mons-logging-1.0.4.jar 日志包
freemarker-2.3.13.jar Sturts2的所有UI标记
ognl-2.6.11.jar OGNL表达式相关
struts2-core-2.1.6.jar Struts2的核心包
xwork-2.1.2.jar XWork2 库。
Struts2核心包,做为底层存在
2.2 加入配置文件 struts.xml, struts.properties
2.3 将struts加入到web.xml的配置中,将请求交由struts来处理
2.4 编写Action类,无需继承任何类和实现任何接口
2.5 在struts.xml中加入对action的配置
搭建spring的框架
2.1 加入jar包
SPRING_HOME/dist/spring.jar
SPRING_HOME/lib/log4j/log4j.jar
SPRING_HOME/mons-logging.jar
2.2 加入配置文件
SPRING_HOME/samples/jpetstore/war/WEB-INF/log4j.properties
SPRING_HOME/samples/jpetstore/war/WEB-INF/applicationContext.xml
2.3 将写好的类加入到spring的管理(配置到xml中)
2.4 通过ClassPathXmlApplicationContext来加载spring的配置文件生成BeanFactory工厂对象,通过工厂对象来创建所需要的bean
hibernate框架搭建
1.1 加入jar包
HIBERNATE_HOME/hibernate3.jar -- hibernate核心包
HIBERNATE_HOME/lib/required/*.jar
(在hibernate官网下载的包中却少一个必须包slf4j-nop-1.5.2.jar,需要自己在网上下载)
数据库的jar包
1.2 hibernate.cfg.xml配置文件
HIBERNATE_HOME/project/etc/hibernate.cfg.xml
对应属性在HIBERNATE_HOME/project/etc/hibernate.properties中寻找
hibernate.connection.url --- 访问数据库的url地址
hibernate.connection.username --- 访问数据库的用户名
hibernate.connection.password --- 访问数据库的密码
hibernate.connection.driver_calss --- 访问数据库所需的驱动包
hibernate.dialect --- 访问数据库的方言
1.3 Xxxx.hbm.xml 映射文件
HIBERNATE_HOME/project/tutorials/eg/src/main//hibernate/auction/Xxxx.hbm.xml
将该文件以需要映射的类的类名.hbm.xml命名放在跟映射类同包中
整合SSH框架的具体步骤
一、环境配置:
1.1 导包顺序:Struts ---->Spring ---> Hibernate
1.2 删除三个包:asm.jar/asm-attrs.jar /cglib-2.1.3.jar
1.3 添加一个包mons-pool.jar
二、DAO:
2.1 代码:
DaoImpl extends HibernateDaoSupport
(CRUD: getHiberanteTemplate().save/update/delte/get/load/find(传参))
2.2 配置: 注入sessionFactory
三、Service:
3.1 代码:
3.1.1 所有业务方法中的实体类型应该是DTO 职责:处理业务/调用DAO
3.1.2 ServiceImpl 中定义DAO接口
3.2 配置: 注入DAO
四、Action:
4.1 代码:
4.1.1 Action 中定义Service接口
4.2 配置
4.2.1
<action type=&.springframework.web.struts.DelegatingActionProxy"/>
[将客户端请求转交给Spring容器的DelegatingActionProxy]
4.2.2
<plug-in
className=&.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="classpath:beans.xml" />
4.2.3
<bean name="path" class="action路径">
<注入Service/>
</bean>
简述ssh框架每层的作用及框架的优缺点
我认为ssh中的struts2层主要是负责控制器这块。
用来接收参数进行调用业务层从而更新显示数据到页面的作用。
spring是个容器。
也是ssh的总控制器。
它囊括了struts2.spring.hibernate。
并且对其进行明确的分工。
以及注入值。
缩减了大量代码。
且易维护等。
hibernate是用来很快速方便的进行业务开发。
采用面向对象的方式自动生成sql语句。
缺点就是配置太麻烦。
容易出错。
优点是能够很好的实现业务层,web层,控制层等的分离。
易于维护和扩展。