struts Spring Hibernate 的jar包官网下载地址
Struts 1/2 :
http://people.apache.org/builds/struts--可以下载Struts 1/2 版本
spring 可在下载你需要的版本:
http://www.springsource.org/download
hibernate :
http://sourceforge.net/projects/hibernate/files/hibernate3/--3.XX版本
http://sourceforge.net/projects/hibernate/files/hibernate4/--4.XX版本
IBATS下载地址:http://code.google.com/p/mybatis/downloads/list?can=1
比如:ibatis-2.3.0.677.jar,
SSH所需要的基本JAR包
1-1.struts1.xx 支持jar包
standard.jar
jstl-1.2.jar
struts2.jar
jakarta-oro.jar
commons-beanutils.jar
commons-collections-2.1.1.jar
commons-digester.jar
commons-fileupload.jar
commons-logging-1.0.4.jar
commons-validator.jar
1-2.struts2.1.6 支持jar包
xwork-2.1.2.jar
struts2-core-2.1.6.jar
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
commons-fileupload-1.2.1.jar
2.spring2.5.6支持jar包
spring.jar
注意可以spring.jar这个JAR包,需用以下JAR包替代
spring-aop.jar,spring-beans.jar,spring-context.jar,spring-core.jar,spring-web.jar,spring-dao.jar,spring-jdbc.jar
3-1.strust整合spring插件支持jar包
spring-struts.jar--这个必须的(特别strust1.XX,这个在spring框架中).
struts2-spring-plugin-2.1.6.jar(一定要和strust2的版本相同,这个在strust2框架中),struts2必须要的.
3-2.spring整合hibernate插件支持jar包
spring-hibernate3.jar--这个必须的(特别strust1.XX,这个在spring框架中).
如果是用spring.jar是这个JAR包,就已包括spring-struts.jar和spring-struts.jar
4.hibernate3.3.1支持jar包
hibernate3.jar
antlr-2.7.6.jar
commons-collections-3.1.jar
jta-1.1.jar
dom4j-1.6.1.jar
commons-logging.jar(commons-logging-1.0.4.jar已添加过了)
javassist-3.4.GA.jar --不是必须的
slf4j-api-1.5.2.jar --不是必须的
slf4j-log4j12-1.5.2.jar --不是必须的
log4j-1.2.15.jar--不是必须的
5.如果使用C3P0数据源实现数据库连接
c3p0-0.9.0.4.jar
6.如果使用mysql数据库
Mysql JDBC驱动: mysql-connector.jar
7.如果想用junit测试
junit-4.4.jar
SSH三大框架JAR包大概作用
Hibernate Jar:
1、hibernate3.jar,这个是hibernate3.0的核心jar包,没的选,像我们常用的Session,Query,Transaction都位于这个jar文件中,必要。
2、cglib-2.1.3.jar,CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必要。
3、asm.jar ASM字节码库 如果使用“cglib”则必要,必要
4、asm-attrs.jar ASM字节码库 如果使用“cglib”则必要,必要
5、ehcache.jar EHCache缓存 如果没有其它缓存,则必要,必要
6、antlr.jar ANother Tool for Language Recognition是一个工具,必要
7、jta.jar JTA规范,当Hibernate使用JTA的时候需要,不过App Server都会带上,所以也是多余的。但是为了测试方便建议还是带上。必要
8、commons-logging.jar Apache Commons包中的一个,包含了日志功能,必须使用的jar包。必要
9、commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必要
10、dom4j.jar 是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate用它来读写配置文件。必要
上面的就是Hibernate的核心jar包,是配置ssh架构中必须的,下面这些就是可选的了。
=========================================================
versioncheck.jar 版本检查 可选
swarmcache.jar 可选
jboss-cache.jar TreeCache 可选
jgroups.jar 可选
xalan.jar, xerces.jar, xml-apis.jar Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是JAXP。一般App Server都会带上,JDK1.4也包含了解析器,不过不是Xerces,是Crimson,效率比较差,不过Hibernate用XML只不过是读取配置文件,性能没什么要紧的,所以也是多余的。可选
c3p0-0.9.1.jar C3p0是一个数据库连接池,Hibernate可以配置为使用C3P0连接池。如果你准备用这个连接池,就需要这个jar包。 可选
connector.jar JCA API,如果你字啊App Server上把Hibernate配置为Connector的话,就需要这个Jar,不过实际上一般App Server肯定会带上这个包,所以也是多余的包 可选
jboss-system.jar 可选
jboss-system.jar 使用TreeCache时必要 可选
jacc-1_0-fr.jar JACC库 可选
checkstyle-all.jar 可选
junit.jar 测试单元 可选
javassist.jar Javassist字节码解释器 可选
ant-lanuncher.jar 可选
jaas.jar JAAS API 是用来进行权限验证的,已经包含在JDK1.4里面了,所以实际上是个多余的包 可选
jdbc2_0-stdext.jar JDBC扩展API,一般来说数据库连接池会用上它,不过App Server都会带上,所以也是多余的。 可选
ant-antlr.jar Ant anlr支持 可选
jboss-jmx.jar 可选
cleanimports.jar cleanimports 可选 xerces.jar SAX parser jdk本版低于1.4时必要 可选
jaxen-1.1-beta-7.jar Jaxen 如果想提高启动性能则去使用 可选
ant-junit.jar Ant junit support 可选
ant-swing.jar ant swing support
ant.jar Ant编译工具的jar包,可选
proxool.jar Proxool JDBC连接池 可选
concurrent.jar 使用TreeCache 需要
syndiag2.jar 可选
commons.collections.jar,commons-pool.jar, commons-dbcp.jar DBCP数据库连接池,Apache的Jakarta组织开发的,Tomcat的连接池也是DBCP.
Spring jar 包 :
spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。
除了spring.jar文件,Spring还包括有其它21个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合,而不必引入整个spring.jar的所有类文件。
1、spring-core.jar这个jar文件包含Spring框架基本的核心工具类。Spring其它的组件要都要使用到这个包里的类,是其它组件基本核心,当然你也可以在自己的系统中使用这些工具类。外部依赖(Commons Logging, Log4J)
2、spring-beans.jar这个jar文件是所有应用都要使用到的,它包含访问配置文件,创建和管理bean以及进行Inversion of Control / Dependency(IoC/DI)操作相关的所有类。
//如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring-beans.jar文件就可以了。
--------以下根据需要选择-----------
spring-aop.jar 这个jar文件包含在应用中使用Spring的AOP特性时所需的类和源码级元数据的支持。使用基于AOP的Spring的特性,如声明型事务管理(Declaritive Transaction Management),也要在应用里包含这个jar包。外部依赖(spring-core, spring-bean , AOP Alliance, CGLIB, Commons Attributes).
spring-context.jar 这个jar文件为Spring核心提供了大量的扩展,可以找到Spring ApplicationContext特性时所需的全部类,JNDI所需的全部类,instrumentation组件以及校验Validation方面的相关类。外部依赖spring-beans, spring-aop.
spring-dao.jar 这个jar文件包含Spring DAO, Spring Transaction进行数据访问的所有类,为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar外部依赖spring-core, spring-aop, spring-context, JTA API.
spring-jdbc.jar这个jar文件包含Spring对JDBC数据访问进行封装的所有类。外部依赖spring-beans, spring-dao.
spring-support.jar 这个jar文件包含支持UI模板(Velocity, FreeMarker, JsperReports, BSH, Groovy, Jruby, Quartz, EHCache)
spring-web.jar 这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入Web Application Context特性的类,Struts与JSF集成类,文件上传的支持类,Filter类和大量工具辅助类。外部依赖spring-context, Servlet API,(JSP API, JSTL, Commons FileUpload, COS).
spring-webmvc.jar 这个jar文件包含Spring MVC框架相关的所有类。包括框架的Servlets, Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的框架,则无需这个JAR文件里的任何类。外部依赖spring-web, sping-support, Tiles, iText,POI.
spring-portlet.jar spring自己实现的一个类似Spring MVC的框架,包括一个MVC框架和一个控制器。外部依赖spring-web, Portlet API, Spring-webmvc.
spring-struts.jar Struts框架支持,可以更方便更容易的集成Struts框架,外部依赖spring-web, Struts.
spring-remoting.jar 这个jar文件包支持EJB,远程调用Remoting(RMI,Hession, Burlap, Http Invoker, JAX-RPC)方面的类。外部依赖spring-aop, spring-context, spring-web,Hessian,Burlap,JAX-RPC,EJB API)。
spring-jmx.jar 这个jar包提供了对JMX1.0/1.2的支持类。外部依赖spring-beans, spring-aop, JMX API.
spring-jms.jar 这个jar包提供了对JMS1.0.2/1.1的支持类。
spring-jca.jar 这个jar包提供了对JCA1.0的支持。
spring-jdo.jar 这个jar包提供了对JDO1.0/2.0的支持。
spring-hibernate2.jar 对Hibernate2.1的支持,已经不建议使用
spring-hibernate3.jar 对Hibernate3.0/3.1/3.2的支持
spring-toplink.jar对TopLink框架的支持 spring-ibatis.jar 对Ibatis SQL Maps的支持。
另外的两个包
spring-mock.jar 这个jar 文件包含Spring 一整套mock 类来辅助应用的测试。Spring 测试套件使用了其中大量mock 类,这样测试就更加简单。模拟HttpServletRequest 和HttpServletResponse 类在Web 应用单元测试是很方便的。并且提供了对JUnit的支持。外部依赖
spring-aspects.jar 提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中.
Struts1.2包介绍:
commons-digester.jar Digester基于规则的XML文档解析,主要用于XML到Java对象的映射(用来处理struts-config.xml配置文件,以达到通过XML生成相应的对象的功能)。
commons-beanutils.jar 提供对Java反射和自省API的包装。
//struts的验证框架依赖以下的两个包
commons-validator.jar(校验方法)和校验规则,支持校验规则的和错误消息的国际化。struts使用它对表单进行验证。
jakarta-oro.jar 一套文本处理工具,能提供perl5.0兼容的正则表达式AWK-like正则表达式,glob表达式。还提供替换,分割,文件名过滤等功能。
struts.jar struts的核心Jar包
antlr.jar 它可以接受词文法语言描述,并能产生识别这些语言的语句的程序。
Struts2.1.6jar包介绍 :
1、struts2-core-2.1.6.jar struts2的核心jar包。
2、freemarker-2.3.13.jar Freemarker是struts2默认的模版语言
3、commons-logging-1.0.4.jar
4、ognl-2.6.11.jarStruts2默认的表达式语言OGNL:对象图形化导航语言
5、xwork-2.1.2.jar 也是Struts2核心包,毕竟struts2很大部分是来自webwork
6、commons-io.jar(注意这个与2.0.x版本不同,即使不上传文件这个也是需要的)
7、commons-fileupload-1.2.1.jar(注意这个与2.0.x版本不同,即使不上传文件这个也是需要的)。
eclipse搭建SSH框架介绍
SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。
第一步:准备工作。
下载好eclipse,Struts2,Spring,Hibernate。
1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse。
当然你也可以下载eclipse-SDK。(下载eclipse-SDK需要下载Web,Tomcat等plugins)
2.Struts2:http://people.apache.org/builds/struts--可以下载Struts 1/2 版本
1)引入Struts的jar包。下载 struts-*-all.zip 解压后,struts/lib目录下是struts所有的相关jar包。
其中有5个是必须的:
Commons-logging-1.0.4.jar,Freemarker-2.3.13.jar,
Ognl-2.6.11.jar,Struts2-core-2.1.6.jar,Xwork-2.1.2.jar
其余jar包并不是struts必须的。还有3个包也要注意导入。不导入运行Tomcat时候可能会出现异常。
commons-io-1.3.2.jar,commons-fileupload-1.2.1.jar,javassist-3.7.ga.jar
注意:javassist-3.7.ga.jar包是在struts2-blank-2.2.1.war示例工程中的web-inf/lib下的。
3.Spring:http://www.springsource.org/download
还可以在eclipse下安装下载。具体步骤是这样的:
1)打开eclipse-help-Software Updates.
2) 在打开的对话框中选择上面的第二项(Available Software)。
3)点击Add Site按钮,弹出URL对话框。
4)在对话框里输入:http://springide.org/updatesite/点击OK。
5)选择sping IDE点击安装(Install)。
4.Hibernate:
http://sourceforge.net/projects/hibernate/files/hibernate3/--3.XX版本
http://sourceforge.net/projects/hibernate/files/hibernate4/--4.XX版本
5.Jdk的src.zip包导入。(当然不导入也可以。。。)
第二步:
1.创建一个 Web Progect,自己起一个喜欢的名字。
2-1修改WEB-INF下的web.xml文件,增加struts1.XX的配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SSHTest</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- welcome file -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2-2.修改WEB-INF下的web.xml文件,增加struts2的配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SSHTest</display-name>
<!-- struts Framework -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- welcome file -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
3-1 struts1在WEB-INF/classes目录下添加struts-config.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<global-exceptions />
<global-forwards />
<action-mappings>
<!-- 这是没有SPRING之前的配置
<action path="/login"
type="action.LoginAction"
parameter="pm"
scope="request">
<forward name="success" path="/jsp/login.jsp"></forward>
<forward name="input" path="/index.jsp"></forward>
</action>
-->
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="pm"
scope="request">
<forward name="success" path="/jsp/login.jsp"></forward>
<forward name="input" path="/index.jsp"></forward>
</action>
</action-mappings>
</struts-config>
3-2. struts2在WEB-INF/classes目录下添加struts.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package namespace="/" name="struts2" extends="struts-default">
<!-- 这是没有SPRING之前的配置
<action name="login" method="execute" class="action.LoginAction">
<result name="success">/WEB-INF/jsp/login.jsp</result>
<result name="input">/WEB-INF/index.jsp</result>
</action>
-->
<!-- class="loginAction"是applicationContext.xml中定义的Bean -->
<action name="login" method="execute" class="loginAction">
<result name="success">/WEB-INF/jsp/login.jsp</result>
<result name="input">/WEB-INF/index.jsp</result>
</action>
</package>
</struts>
4.配置Spring
1)导入spring包。spring-framework-**.zip解压后,将spring-framework-**文件夹的dist目录下的jar包导入工程中。
2)配置web.xml文件。
<!-- 解决因session关闭而导致的延迟加载例外的问题 -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring Framework -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext*.xml
</param-value>
</context-param>
Web.xml配置文件需要做以下几件事情:配置ActionServlet,Spring容器监听器(字符处理,session已关闭异常处理)括号内为可选。
需要注意的地方:
a.过滤器的配置必须写在Servlet配置前,比如字符处理 org.springframework.web.filter.CharacterEncodingFilter 必须配置在ActionServlet注册之前。
b.过滤器名和参数名要正确,是固定不变的。比如在配置Spring容器监听时,上下文参数名称必须为contextConfigLocation. 等等
C.applicationContext.xml在SRC根目录(即WEB-INF\classes)下,param-value: classpath:applicationContext*.xml, applicationContext.xml在\WEB-INF目录下,则param-value: classpath:/WEB-INF/classes/applicationContext*.xml.
3)-1 Struts21xx添加applicationContext.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- Action 注意是name="/login"而不是id="/login" 其它普通BEAN才是ID -->
<bean name="/login" class="action.LoginAction"></bean>
</beans>
3)-2 Struts2:添加applicationContext.xml文件。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <!-- Action 注意loginAction需与struts.xml中的ACTION中的class类要匹配 --> <bean id="loginAction" scope="prototype" class="action.LoginAction"></bean> </beans>
注意:scope="prototype"表示每次请求都会重新实例化对象. scope="singleton"表示WEB容器中此对象只有一个实例,即单例
4)整合Spring与Struts。在Struts的lib目录中找到struts2-spring-plugin-*.jar,引入到工程中。
SPRING容器加载有两种方法
1web.xml文件增加
<!-- 对Spring容器进行实例化,并把实例存放在application的属性里 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2struts-config.xml文件增加
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/userService.xml" />
</plug-in>
5.配置Hibernate
1)解压缩hibernate-distribution-*.zip。导入hibernate-distribution-*GA/lib/required目录中的jar包。
hibernate3.jar 核心类库
antlr-2.7.6.jar 代码扫描器,用来翻译HQL语句
commons-collections-3.1.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,
功能比java.util.*强大
dom4j-1.6.1.jar 一个Java的XML API,类似于jdom,用来读写XML文件的
javassist-3.4.GA.jar Javassist 字节码解释器
jta-1.1.jar 标准的JTA API。
slf4j-api-1.5.2.jar
slf4j-nop-1.5.2.jar
2)创建Hibernate配置文件。在WEB-INF/calsses目录下建立链接数据库的配置文件hibernate.cfg.xml。
(本人比较懒,公司电脑中只有Access,也懒得下载别的DBMS。所以例子是连接Access的大家将就看吧。
*注意:需要导入Access_JDBC30.jar。
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class"> com.hxtt.sql.access.AccessDriver </property> <property name="connection.url"> jdbc:access:///D:/workspace/SSHTest/TestDatabase.accdb </property> <!-- 数据库连接设置 --> <property name="eclipse.connection.profile">access</property> <property name="connection.username"></property> <property name="connection.password"></property> <property name="dialect">com.hxtt.support.hibernate.HxttAccessDialect</property> <!-- show_sql 生成SQL语句 --> <property name="show_sql">true</property> <!-- SQL dialect 方言 --> <property name="hibernate.dialect"> com.hxtt.support.hibernate.HxttAccessDialect </property> <!-- 添加实体类的映射文件--> <mapping resource="Login.hbm.xml" /> <!-- Annotation方式配置 <mapping class="entity.Login"/> --> </session-factory> </hibernate-configuration>
注意:单独使用Hibernate需要创建Session工厂类HibernateSessionFactory.java
(如果用Spring整合就不需要了。Spring会在applicationContext.xml中创建。)
Hibernat 对数据库的操作是通过Session来实现的,这里的session不同于页面间传递参数的session,
而是类似于JDBC中的 Connection。Session是Hibernate运作的中心,
对象的生命周期、事务的管理、数据库的存取都与session息息相关。
而Session是由HibernateSessionFactory创建的,是线程安全的,
可以让多个执行线程同时存取HibernateSessionFactory而不会有数据共享的问题,
但不能让多个线程共享一个Session。
3)Login.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="包名"> <class name="类名" table="表名"> <id name="主键在java类中的字段名" column="对应表中字段" type="类型 "> <generator class="主键生成策略"/> </id> </class> </hibernate-mapping>
6.Spring整合Hibernate。Spring对hibernate的Session的创建、提交、关闭的整个生命周期进行管理。
1) 配置sessionFactory,让spring来创建Session。在applicationContext.xml中增加如下代码:
<!-- sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:/hibernate.cfg.xml</value> </property> </bean>
为web工程添加struts、hibernate和spring支持(eclipse) --转
为web工程添加struts和hibernate支持(eclipse)
一:添加struts支持:
1:建立自己的web工程。
2:为web应用添加struts支持,首先把struts下的lib目录中的jar文件全部复制到web应用的WEB-INF/lib目录下。
3:如果需要使用struts的标签库,应该将lib目录下的TLD文件全部复制到web应用的WEB-INF目录下,如果使用的是servlet2.4以前的规范,还要在web.xml文件中配置要使用的标签库,具体配置如下:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
</jsp-config>
如果使用的是servlet2.4以后的规范,则无需再在web.xml文件中配置。
完成这些配置之后只要在要使用struts标签的jsp页面中指明标签的位置就可以了,如下:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
或者是:
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
这两种写法的效果是一样的。
但是这种做法比较复杂,每次要使用这3个标签的时候都要在文件中声明,比较简便的做法是建立一个taglibs.jsp文件,将标签的声明放在这个文件中,然后每次要使用struts标签的时候只要把这个文件include进来就好了,taglibs文件的内容:
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
在使用struts标签的文件中加入:<%@include file=”taglibs.jsp’%>
4:如果要使用struts的数据校验,应将validator-rules.xml(这个文件是通用的,无需用户编辑)文件复制到web应用的WEB-INF路径下,然后还要在此路径下建立validator.xml文件,指定校验的范围和规则,这个文件要用户自己编辑。然后在struts-config.xml文件中添加如下内容:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
<set-property property="stopOnFirstError" value="true" />
</plug-in>
5:如果需要使用struts的表达式,应该将struts目录下的contrib/struts-el/lib路径下的jar文件全部复制到web应用的WEB-INF路径下,然后将对应的TLD文件也复制到该路径下,并在web.xml文件中配置相应的标签库。
6:国际化,建立国际化需要的properties文件,然后在struts-config.xml配置文件中添加如下内容:
<message-resource parameter=”message”/>其中message是国际化文件的文件名。
二:添加hibernate支持
1:将hibernate下的hibernate3.jar文件复制到web应用的WEB-INF/lib目录下,然后给eclipse安装hibernate tools插件,安装过程如下:
首先在eclipse目录下建立links文件夹,在文件夹下面建立hibernate.link文件(文件名可以任意,为了区分,最好使用和插件一样的名字),然后在eclipse目录下建立一个hibernatetools的文件夹,然后再在此文件夹下建立一个eclpipse文件夹,将hibernate-tools下的features和plugins两个文件夹复制到这个文件夹下;
然后编辑hibernate.link文件,内容:
path=hibernatetooos的路径
最好是使用绝对路径,如:C:/Eclipse-j2ee-europa/eclipse/hibernatetools
需要注意的是hibernatetools文件夹下的目录是这样的/eclipse/然后再eclipse下是features和plugins两个文件夹。
如果设置成功的话,单击选中工程,然后选择new->other菜单,在出现的对话框中会有hibernate选项。
使用hibernate-tools建立hibernate.cfg.xml文件,配置自己的数据库连接,然后为每一个持久化类建立自己的映射文件,映射文件配置完成后,在hibernate.cfg.xml中指明该映射文件的位置。
三:添加spring支持
1:下载spring-framework-2.0-dependencies.zip包,将该包解压缩,然后将dist目录下的spring.jar包复制到web应用的WEB-INF/lib目录下。
2:将lib路径下的cglib、dom4j、jakara-commmons、log4j文件夹下的jar文件复制到web应用的WEB-INF/lib目录下。
SSH整合之配置文件--转载:http://blog.csdn.net/wumingzu/article/details/4157177
1. web.xml文件的配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <!-- 配置字符编码过滤器(解决乱码问题)
- <filter>
- <filter-name>encoding</filter-name>
- <filter-class>
- org.springframework.web.filter.CharacterEncodingFilter
- </filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- -->
- <!-- 解决因session关闭而导致的延迟加载例外的问题 -->
- <filter>
- <filter-name>OpenSessionInViewFilter</filter-name>
- <filter-class>
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>OpenSessionInViewFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:applicationContext.xml</param-value>
- </context-param>
- <!-- 对Spring容器进行实例化,并把实例存放在application的属性里 -->
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>
- org.apache.struts.action.ActionServlet
- </servlet-class>
- <init-param>
- <param-name>config</param-name>
- <param-value>/WEB-INF/struts-config.xml</param-value>
- </init-param>
- <init-param>
- <param-name>debug</param-name>
- <param-value>3</param-value>
- </init-param>
- <init-param>
- <param-name>detail</param-name>
- <param-value>3</param-value>
- </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>Login.html</welcome-file>
- </welcome-file-list>
- </web-app>
Web.xml配置文件需要做以下几件事情:配置ActionServlet,Spring容器监听器(字符处理,session已关闭异常处理)括号内为可选。
需要注意的地方:
a.过滤器的配置必须写在Servlet配置前,比如字符处理 org.springframework.web.filter.CharacterEncodingFilter 必须配置在ActionServlet注册之前。
b.过滤器名和参数名要正确,是固定不变的。比如在配置Spring容器监听时,上下文参数名称必须为contextConfigLocation. 等等
2.hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">sa</property>
<property name="connection.url">
jdbc:sqlserver://localhost:1434;databaseName=testDemo2
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">
sql2005-test
</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping resource="com/test/entity/Sale.hbm.xml" />
<mapping resource="com/test/entity/UserInfo.hbm.xml" />
</session-factory>
2.applicationContext.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="configLocation"
- value="classpath:hibernate.cfg.xml">
- </property>
- </bean>
- <bean id="template" class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <bean id="common" class="com.ssh.common.Common">
- <property name="hibernateTemplate" ref="template"></property>
- </bean>
- <bean id="pdao" class="com.ssh.dao.impl.ProductsDao">
- <property name="common" ref="common"></property>
- </bean>
- <bean id="sdao" class="com.ssh.dao.impl.SalesmanDao">
- <property name="common" ref="common"></property>
- </bean>
- <bean id="salemService" class="com.ssh.service.impl.SaleManagerService">
- <property name="prodao" ref="pdao"></property>
- <property name="saldao" ref="sdao"></property>
- </bean>
- <!-- Action配置 -->
- <bean name="/pdt" class="com.ssh.action.ProductsManagerAction">
- <property name="ss" ref="salemService"></property>
- </bean>
- <!-- 事务管理器 -->
- <bean id="htm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <!-- 定义事务拦截器 -->
- <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
- <property name="transactionManager" ref="htm"></property>
- <property name="transactionAttributes">
- <props>
- <prop key="insert*">PROPAGATION_REQUIRED</prop>
- <prop key="update*">PROPAGATION_REQUIRED</prop>
- <prop key="delete*">PROPAGATION_REQUIRED</prop>
- <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
- <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
- <prop key="validate*">PROPAGATION_REQUIRED</prop>
- </props>
- </property>
- </bean>
- <!-- 自动代理 -->
- <bean id="auto" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
- <!-- beanNames -->
- <property name="beanNames">
- <value>*Service</value>
- </property>
- <property name="interceptorNames">
- <list>
- <value>transactionInterceptor</value>
- </list>
- </property>
- </bean>
- </beans><?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="configLocation"
- value="classpath:hibernate.cfg.xml">
- </property>
- </bean>
- <bean id="template" class="org.springframework.orm.hibernate3.HibernateTemplate">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <bean id="common" class="com.ssh.common.Common">
- <property name="hibernateTemplate" ref="template"></property>
- </bean>
- <bean id="pdao" class="com.ssh.dao.impl.ProductsDao">
- <property name="common" ref="common"></property>
- </bean>
- <bean id="sdao" class="com.ssh.dao.impl.SalesmanDao">
- <property name="common" ref="common"></property>
- </bean>
- <bean id="salemService" class="com.ssh.service.impl.SaleManagerService">
- <property name="prodao" ref="pdao"></property>
- <property name="saldao" ref="sdao"></property>
- </bean>
- <!-- Action配置 -->
- <bean name="/pdt" class="com.ssh.action.ProductsManagerAction">
- <property name="ss" ref="salemService"></property>
- </bean>
- <!-- 事务管理器 -->
- <bean id="htm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <!-- 定义事务拦截器 -->
- <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
- <property name="transactionManager" ref="htm"></property>
- <property name="transactionAttributes">
- <props>
- <prop key="insert*">PROPAGATION_REQUIRED</prop>
- <prop key="update*">PROPAGATION_REQUIRED</prop>
- <prop key="delete*">PROPAGATION_REQUIRED</prop>
- <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
- <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
以上是Struts1.0的写法。
applicationContext.xml需要做以下几件事情: 数据源的配置(可以在hibernate-config.xml配置),Common层,Dao层,Service层,Action层(也可以单独配置,然后采用Struts的插件plug-In将其添入),事务配置。
注意点:
a.在配置 SessionFactory 时,其属性configLocation的值为applicationContext.xml在发布之后的路径,若它位于src目录下,则可以直接使用classpath:; 若其位于WEB-INF下则为/WEB-INF/classes/applicationContext.xml
b.如果采用的是Struts1,则配置Action Bean时,用name代替id属性,其值为struts-config.xml中相应Action的path属性值。class值为Action的类路径,struts-config.xml中type属性为DelegatingActionProxy 代理类的路径
c.在自动代理配置中beanNames属性为Service层Bean组件的id值。
3.Struts-config.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
- <struts-config>
- <form-beans>
- <form-bean name="userForm" type="com.ssh.action.form.UserForm"></form-bean>
- </form-beans>
- <global-exceptions />
- <global-forwards />
- <action-mappings>
- <action path="/pdt"
- name="userForm"
- type="org.springframework.web.struts.DelegatingActionProxy"
- parameter="pm"
- scope="request">
- <forward name="showDetails" path="/showDetails.jsp"></forward>
- <forward name="error" path="/Login.html"></forward>
- </action>
- </action-mappings>
- <!--
- <controller>
- <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
- </controller>
- -->
- <controller processorClass="com.ssh.action.MyRequestProcessor"></controller>
- <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
- </struts-config>