- 浏览: 308038 次
- 性别:
- 来自: 河南开封
文章分类
最新评论
-
keven_niu:
好不错哦。。
jquery dialog对话框插件实例弹层效果 -
我是云:
zjuttsw 写道zjuttsw 写道楼主最后两个例子很好。 ...
Java switch-case语句用法 -
ytt06460105:
问题已解决。
使用JDBC访问DB2的问题:no db2jdbc in java.library.path -
ytt06460105:
楼主:按照你的方法做了,又出现了新的错误:[com.aliba ...
使用JDBC访问DB2的问题:no db2jdbc in java.library.path -
zjuttsw:
zjuttsw 写道楼主最后两个例子很好。学习了 不过第三条好 ...
Java switch-case语句用法
看过了两三个SSH搭建的视频(浪曦风中叶老师、尚学堂李勇老师的两个视频),也跟着视频把这个框架搭了两遍,有点迷迷糊糊的,为了加深印象,我决定不依靠视频再来搭一遍,经过一天的调试与处理,终于能够独立自主地把SSH框架给搭建起来了,不容易啊。其中出现的错误以及各种各样的BUG不计其数,通过查阅文档以及Google得到了解决。这里,我就来做一个总结:
SSH框架的基本配置:
1.相关jar包的引入,这里我采用的是spring2 + struts2 + hibernate3的组合,搭完了之后才发现Spring已经到3了,不知道在Spring3上面的配置是否相同,有待尝试。
Sql代码
-----核心jar包-----
# spring.jar
# struts2-core.jar
# xwork-core.jar
# mysql-connector-java.jar
# hibernate3.jar
# struts2-spring-plugin.jar
-----在默认配置下核心jar所依赖的jar包---
# commons-collections.jar ---|
# commons-fileupload.jar-----|------------这三个jar包是在jakarta-commons项目中一些
# commons-logging.jar--------| 基于JDK上扩展的工具包。
# freemarker.jar
# log4j.jar
# ognl.jar
# dom4j.jar
# jta.jar
# cglib-nodep.jar
# antlr.jar ------------ 这个jar包是spring AOP 采用 动态代理 时需要的jar包。
2.相关的配置
i)/WEB-INF/web.xml
a.需要配置一个Struts2的Filter:
Xml代码
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
b.由于从struts2.1.3之后的版本不再建议采用org.apache.struts2.dispatcher.FilterDispatcher,所以,我们最好配置成StrutsPrepareAndExecuteFilter或者StrutsExecuteFilter以及StrutsPrepareFilter,需要注意的是:如配置成StrutsExecuteFilter需要将StrutsPrepareFilter也配置上,否则将会报错。所以建议就只直接采用StrutsPrepareAndExecuteFilter。
c.此外还需要配置一个ContextListener:
Xml代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果你的applicationContext.xml没有配置在/WEB-INF/目录或者采用的不是默认的文件名,则还需要配context-param,让Spring找到对应的配置文件,如下(注意:param-name的内容一定是contextConfigLocation,Spring将根据该名称注入到相应的对象中):
Xml代码
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:application-Context.xml</param-value>
</context-param>
ii)applicationContext.xml,这个文件是比较核心的文件:
a)配置sessionFactory,有两种配置方式:
(1)采用传统的Hibernate配置文件,将其映射到sessionFactory中:
Xml代码
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" >
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
采用这种方式时,需要在hibernate.cfg.xml文件中配置数据连接相关信息,这里与一般的hibernate配置文件一样:
Xml代码
<hibernate-configuration>
<session-factory>
<!-- connection configuration -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ssh_test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">orange</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- the following configuration just for programming and debug -->
<property name="hibernate.show_sql">true</property>
<!-- mapping resource -->
<mapping resource="com/ssh/bean/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
(2)采用sessionFactory属性的方式配置数据源相关信息,如下:
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mytest" />
<property name="username" value="root" />
<property name="password" value="orange" />
<property name="maxActive" value="100" />
<property name="maxIdle" value="30" />
<property name="maxWait" value="500" />
<property name="defaultAutoCommit" value="true" />
</bean>
<!-- 将数据源映射到sessionFactory中 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/test/bean/User.hbm.xml</value>
</list>
</property>
</bean>
b)配置完sessionFactory后,还可以根据需要配置以下三方面的内容,也可以不配置选择采用默认的方式:
Xml代码
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* xxx.xxx.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
这样就基本完成了我们的ssh的相关配置。
3.SSH的基本使用:
具体分工:
# 在applicationContext.xml中配置相关的bean信息
Xml代码
<bean id="userService" class="com.ssh.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="loginAction" class="com.ssh.action.LoginAction">
<property name="service" ref="userService" />
</bean>
这里的property属性中name值对应的是相应处理类生成时需要IoC容器注入的属性,比如说id为loginAction的处理类为com.ssh.action.LoginAction(它其中应当设置一个setService(UserService service)方法),这样在需要使用该bean时,IoC容器会调用这个setService方法来将生成的userService对象传入。
需要注意的是,如果想让IoC容器注入相应属性,则必须要实现相应属性的set方法。
# 在struts.xml中配置action的相关信息
相关注意事项:
由于所有的bean都由Spring来管理,那么在struts.xml中一个action的class属性就不能写成具体的类,而是要使用该类在applicationContext.xml文件中配置的Bean的id,如:
Xml代码
<action name="login" class="loginAction">
<result name="success">/result.jsp</result>
<result name="input">/index.jsp</result>
</action>
这个loginAction对应的就是上面的id为loginAction的bean,而这个bean的class属性中设置的才是真正的对应的Action的处理类。
# 对于每个模型,都要有一*.hbm.xml
3.其它一些注意点:
Spring中一些的概念很重要:AOP,IOC。
SSH框架的基本配置:
1.相关jar包的引入,这里我采用的是spring2 + struts2 + hibernate3的组合,搭完了之后才发现Spring已经到3了,不知道在Spring3上面的配置是否相同,有待尝试。
Sql代码
-----核心jar包-----
# spring.jar
# struts2-core.jar
# xwork-core.jar
# mysql-connector-java.jar
# hibernate3.jar
# struts2-spring-plugin.jar
-----在默认配置下核心jar所依赖的jar包---
# commons-collections.jar ---|
# commons-fileupload.jar-----|------------这三个jar包是在jakarta-commons项目中一些
# commons-logging.jar--------| 基于JDK上扩展的工具包。
# freemarker.jar
# log4j.jar
# ognl.jar
# dom4j.jar
# jta.jar
# cglib-nodep.jar
# antlr.jar ------------ 这个jar包是spring AOP 采用 动态代理 时需要的jar包。
2.相关的配置
i)/WEB-INF/web.xml
a.需要配置一个Struts2的Filter:
Xml代码
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
b.由于从struts2.1.3之后的版本不再建议采用org.apache.struts2.dispatcher.FilterDispatcher,所以,我们最好配置成StrutsPrepareAndExecuteFilter或者StrutsExecuteFilter以及StrutsPrepareFilter,需要注意的是:如配置成StrutsExecuteFilter需要将StrutsPrepareFilter也配置上,否则将会报错。所以建议就只直接采用StrutsPrepareAndExecuteFilter。
c.此外还需要配置一个ContextListener:
Xml代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果你的applicationContext.xml没有配置在/WEB-INF/目录或者采用的不是默认的文件名,则还需要配context-param,让Spring找到对应的配置文件,如下(注意:param-name的内容一定是contextConfigLocation,Spring将根据该名称注入到相应的对象中):
Xml代码
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:application-Context.xml</param-value>
</context-param>
ii)applicationContext.xml,这个文件是比较核心的文件:
a)配置sessionFactory,有两种配置方式:
(1)采用传统的Hibernate配置文件,将其映射到sessionFactory中:
Xml代码
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" >
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
采用这种方式时,需要在hibernate.cfg.xml文件中配置数据连接相关信息,这里与一般的hibernate配置文件一样:
Xml代码
<hibernate-configuration>
<session-factory>
<!-- connection configuration -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/ssh_test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">orange</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- the following configuration just for programming and debug -->
<property name="hibernate.show_sql">true</property>
<!-- mapping resource -->
<mapping resource="com/ssh/bean/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
(2)采用sessionFactory属性的方式配置数据源相关信息,如下:
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mytest" />
<property name="username" value="root" />
<property name="password" value="orange" />
<property name="maxActive" value="100" />
<property name="maxIdle" value="30" />
<property name="maxWait" value="500" />
<property name="defaultAutoCommit" value="true" />
</bean>
<!-- 将数据源映射到sessionFactory中 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/test/bean/User.hbm.xml</value>
</list>
</property>
</bean>
b)配置完sessionFactory后,还可以根据需要配置以下三方面的内容,也可以不配置选择采用默认的方式:
Xml代码
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* xxx.xxx.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
这样就基本完成了我们的ssh的相关配置。
3.SSH的基本使用:
具体分工:
# 在applicationContext.xml中配置相关的bean信息
Xml代码
<bean id="userService" class="com.ssh.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="loginAction" class="com.ssh.action.LoginAction">
<property name="service" ref="userService" />
</bean>
这里的property属性中name值对应的是相应处理类生成时需要IoC容器注入的属性,比如说id为loginAction的处理类为com.ssh.action.LoginAction(它其中应当设置一个setService(UserService service)方法),这样在需要使用该bean时,IoC容器会调用这个setService方法来将生成的userService对象传入。
需要注意的是,如果想让IoC容器注入相应属性,则必须要实现相应属性的set方法。
# 在struts.xml中配置action的相关信息
相关注意事项:
由于所有的bean都由Spring来管理,那么在struts.xml中一个action的class属性就不能写成具体的类,而是要使用该类在applicationContext.xml文件中配置的Bean的id,如:
Xml代码
<action name="login" class="loginAction">
<result name="success">/result.jsp</result>
<result name="input">/index.jsp</result>
</action>
这个loginAction对应的就是上面的id为loginAction的bean,而这个bean的class属性中设置的才是真正的对应的Action的处理类。
# 对于每个模型,都要有一*.hbm.xml
3.其它一些注意点:
Spring中一些的概念很重要:AOP,IOC。
发表评论
-
Apache+Tomcat集群配置
2013-06-24 09:49 1249Tomcat 本文Apache+Tomcat集群 ... -
FusionCharts参数的详细说明和功能特性
2013-03-13 12:22 1172功能特性animation ... -
Tomcat中关于堆内存与永久区内存的设置
2011-12-12 13:49 27121.在tomcat (免安装版)文件夹下的bin文件夹下找 ... -
Tomcat内存溢出的原因 三个原因
2011-12-12 13:38 1707Tomcat内存溢出的原因 在生产环境中tomcat内存 ... -
xml中大于、小于等特殊字符处理
2011-10-11 09:57 3039可以用下面这种写法转义 < ... -
FreeMarker在struts2,JAVA,web中的应用实例
2011-09-15 10:19 2008FreeMarker概述 * FreeMarker是一 ... -
J2EE里面使用freemark技术
2011-09-15 09:46 1588模板技术在现代的软件 ... -
java乱码问题
2011-09-01 09:44 3304Java中乱码问题很常见,原因也多种多样,这里做一个总结,不求 ... -
ognl表达式入门应用
2011-08-30 17:12 1597package foo.test; public cla ... -
XFire建立webservice服务和客户端
2011-08-15 15:50 1828XFire 是与Axis 2并列的新一代Web Service ... -
字符编码过滤器的一般写法
2011-08-04 16:24 1198今天研究别人的代码的时候突然发现spring的org.spri ... -
struts2的日期date格式化(3种)
2011-08-02 09:27 2691在直接<s:textfield中也要日期格式化,平时使用 ... -
j2ee获取客户端参数集
2011-07-07 18:28 1655Java代码 package javacommon.u ... -
HttpURLConnection发送文件
2011-07-05 10:16 2470Java代码 URL url = new URL( ... -
tomcat部署get请求乱码问题解决方法
2011-06-13 18:06 1922默认情况下,Tomcat对请求采用的默认编码是ISO-8859 ... -
Tomcat:IOException while loading persisted sessions: java.io.EOFException
2011-06-13 15:56 1642一直用tomcat一段时间都一切正常,最近一次启动tomcat ... -
jsp打印问题
2011-04-07 15:58 3136jsp打印问题 回复于 2006-01-06 22:43:45 ... -
ssh分页(多个例子)
2011-03-31 17:50 3330先是一个page的bean: Java代码 package ... -
分页标签:pager-taglib使用指南
2011-01-26 18:07 1659一简介, Pager-taglib,支持多种风格的分页显示。 ... -
jstl 遍历集合
2011-01-26 16:02 5117<%@ page language="java ...
相关推荐
一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架可能是一个相当困难麻烦的事。...SSH框架总结 Myeclipse10下搭建SSH框架(图解)Struts2.1 + Spring3.0 + Hibernate3.3等
### 手把手SSH架构搭建详解 #### 一、概述 SSH框架是指Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级开发框架。本篇将详细介绍如何在MyEclipse 10环境下搭建SSH框架,并进行...
总结起来,SSH框架集合了Struts2的MVC处理、Spring的依赖注入和事务管理以及Hibernate的对象关系映射能力,是Java Web开发中的强大工具。正确理解并合理使用这些框架,可以大大提高开发效率和代码质量。在实际项目中...
SSH 搭建 WebService 服务 在本文中,我们将讨论如何在已有的 Struts2+Spring3 项目中搭建 WebService 服务,使用 CXF2.6 实现。该方法适合新手维护老系统搭建 WebService,使用非注解方式,比较老的方式。 Struts...
总结来说,SSH2框架搭建涉及到Struts2的MVC设计模式、Spring的依赖注入和事务管理,以及Hibernate的对象关系映射。这三个框架协同工作,构建出一个能够高效处理数据库操作并呈现结果的Web应用。在实际开发中,还需要...
### 最新SSH框架搭建知识点详解 #### 一、概述 SSH框架是指Struts2、Spring以及Hibernate三个开源框架的组合,常被用于Java Web应用程序的开发。本文将详细介绍如何使用Eclipse IDE搭建SSH框架(Struts2.5.10 + ...
总结来说,"Eclipse搭建SSH框架开发学习笔记"涵盖了从基础环境准备(JDK安装与环境变量配置)、开发工具(Eclipse与Tomcat配置)、数据库(MySQL服务器搭建)到系统服务管理等多个环节,为初学者提供了详尽的步骤...
总之,SSH架构提供了强大的功能,但搭建和配置过程需要一定的学习和实践。理解每个框架的核心职责,熟悉它们的配置和使用方法,是提升开发效率的关键。随着技术的发展,Spring已经更新到更高版本,如Spring Boot和...
"Maven搭建SSH项目"是一个基础的Java Web开发模板,通过Maven管理项目构建,结合Struts2处理请求,Spring管理依赖和事务,Hibernate进行数据操作。这样的组合可以快速构建出功能完备的应用,并易于维护和扩展。理解...
建立Web工程 * 导入需要的jar包 db:连接数据库的驱动包 hibernate:使用hibernate的jar包 jstl:java的标准标签库 junit:测试用到的jar包 spring:使用spring的jar包 struts2:使用struts2的jar包 ...
### SSH框架搭建详解 在IT领域,特别是Java开发中,SSH框架(Struts + Spring + Hibernate)被广泛采用,作为构建复杂企业级应用的强大工具集。本文将基于提供的标题、描述、标签及部分内容,深入解析SSH框架搭建的...
本文主要总结了如何在Eclipse环境中搭建SSH整合框架。 首先,搭建SSH框架的基础环境是Eclipse集成开发环境以及对应的数据库连接Jar包。Eclipse作为开发工具,提供了丰富的插件支持,使得框架的搭建和管理变得更加...
### MyEclipse 8.5 下搭建 SSH 框架详解 #### 一、概述 SSH框架是指将Struts、Spring以及Hibernate这三个开源框架进行整合,以实现更加强大、灵活且可扩展的企业级应用开发。本文将详细介绍如何在MyEclipse 8.5...
### Java SSH框架搭建配置详解 #### 一、概述 SSH框架是Java Web开发中的一个非常流行的组合,这里的SSH指的是Spring、Struts以及Hibernate三个开源框架的首字母缩写。这三个框架各自解决不同的问题:Spring主要...
总结来说,SSH框架的搭建涉及多个步骤,包括配置文件的设置、类的编写以及数据库操作。一旦完成,我们可以轻松实现包括注册在内的各种Web功能,提高开发效率,降低耦合度,使得项目更加健壮和易于维护。
### SSH2项目环境搭建步骤详解 #### 一、概述 SSH2是指Struts2、Spring、Hibernate三个开源框架的组合,常被用作构建企业级Web应用的基础框架。本篇文章将详细介绍如何搭建SSH2项目的环境,并针对每一个步骤进行...
总结来说,SSH框架是Java Web开发中的强大工具,它通过Struts2、Spring和Hibernate的协同工作,实现了MVC架构,提供了松散耦合的组件和灵活的数据访问,大大提高了开发效率和代码质量。熟练掌握SSH框架的搭建和使用...
总结来说,嵌入式Linux中搭建SSH服务涉及安装和配置SSH服务器、设置用户认证信息、启动服务以及在开发板上移植和运行SFTP客户端。这不仅包括对Linux系统基本操作的熟悉,还涉及到交叉编译技术的掌握,以及对网络安全...
一次下载,全部SSH框架文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架可能是一个相当困难麻烦的事。...SSH框架总结,Myeclipse10下搭建SSH框架(图解)Struts2.1 + Spring3.0 + Hibernate3.3等
本篇文章将详细介绍如何在MyEclipse6.0/6.5环境下搭建一个基于SSH的项目,并使用Oracle数据库。 **一、Struts框架** Struts是Apache组织提供的一个开源MVC框架,它主要负责控制应用程序的流程。在Struts1.*版本中,...