- 浏览: 7339592 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目中SSH或SSH2中OpenSessionInViewFilter的配置顺序(实质过滤器的配置顺序)
- 博客分类:
- Spring 开发应用
- java并发编程
网上一些网友上在项目中SSH或SSH2中OpenSessionInViewFilter的配置顺序(实质过滤器的配置顺序),配置了但是报session关闭的错误,其实原因在Filter配置顺序的原因:
SSH2正确顺序:
OpenSessionInViewFilter
ActionContextCleanUp
FilterDispatcher
以及其他的Filter
配置:
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>hibernate.sessionFactory</param-value>
</init-param>
</filter>
注意:无论怎么配置OpenSessionInViewFilter的配置顺序很重要!!同时配置SessionFactory的名称。
struts/spring/hibernate的时候同样使用OpenSessionInView:
1.首先是web.xml
<filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> ......
2. 然后是struts-config.xml:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" /> </plug-in>
S2SH配置:
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:context="http://www.springframework.org/schema/context" 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/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:component-scan base-package="com.fsj" /><!-- 启用自动扫描 --> <!-- 基于hibernate注解的sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"> </property> </bean> <!-- 基于hibernate的事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 采用注解形式的声明式事务管理 --> <tx:annotation-driven transaction-manager="txManager"/> </beans>
web.xml如下设置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <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> <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> <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> </web-app>
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> <!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 --> <constant name="struts.i18n.encoding" value="UTF-8" /> <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 --> <constant name="struts.serve.static.browserCache" value="false" /> <!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 --> <constant name="struts.configuration.xml.reload" value="true" /> <!-- 开发模式下使用,这样可以打印出更详细的错误信息 --> <constant name="struts.devMode" value="true" /> <!-- 默认的视图主题 --> <constant name="struts.ui.theme" value="simple" /> <!-- 把action对象交给spring创建 --> <constant name="struts.objectFactory" value="spring" /> <package name="myDefault" extends="struts-default"> <default-action-ref name="indexPage" /> <global-results> <result name="exceptionPage">/WEB-INF/exceptionPage.jsp </result> </global-results> <global-exception-mappings> <exception-mapping result="exceptionPage" exception="java.lang.Exception" /> </global-exception-mappings> <action name="indexPage"> <result>/login.jsp</result> </action> </package> <package name="user" namespace="/user" extends="myDefault"> <!-- 这里面的class不是指完整类路径,而是指在spring中定义的bean的名称 --> <action name="*UserAction" class="userAction" method="{1}"> <result name="success">/WEB-INF/user/loginSuccess.jsp</result> <result name="input">/login.jsp</result> </action> </package> </struts>
项目中采用单一的SessionFactory,如果有多个SessionFactory该怎么办呢?希望牛人指点!!
发表评论
-
【转】Coherence Event Processing by using Map Trigger Feature
2013-06-25 14:02 2084This article shows how to proc ... -
【转】Distributed Data Management in Oracle Coherence
2013-06-25 13:55 1894This article shows how to prov ... -
【转】How to distribute Spring Beans by using Coherence
2013-06-21 17:24 1971转载自: http://www.onli ... -
【转】在项目中使用多个数据源-多sessionFactory方案
2013-05-10 16:30 3131适用范围:适合SSH架构访问多个数据库, ... -
【转】使用spring的动态路由实现数据库负载均衡
2013-03-17 22:57 3308使用spring的动态路由实现数据库负载均衡 系统中 ... -
【转】spring 数据库读写分离
2013-03-17 22:56 2804什么是数据库的读写分离 数据库的读写分离简单的说是把对数据 ... -
[转]Spring+iBatis+JOTM实现JTA事务
2013-03-17 22:51 3059Spring+iBatis+JOTM实现JTA事务 ... -
Spring 和Axis2整合相关那些事
2012-12-29 12:58 10421Axis2优劣: 现在用axis2开发一个webse ... -
关于H2使用的那些事
2012-12-14 16:40 27222在项目中采用H2作为工 ... -
【转】ConcurrentHashMap之实现细节
2012-12-10 14:32 1776Conc ... -
【转】Java并发编程J.U.C之Condition
2012-12-10 13:14 1914转载自http://www.golde ... -
【转】Java并发编程J.U.C之锁的获取与释放
2012-12-10 13:07 1617转载自 http://www.g ... -
【转】JUC 基础内容概述
2012-12-10 13:01 2050Concurrent Programming in Jav ... -
【转】Java并发编程之ConcurrentHashMap
2012-12-10 12:56 1778ConcurrentHashMap Conc ... -
【转】单例模式完全解析
2012-12-07 12:58 1710本文将探讨单例模式的各种情况,并给出相应的建议。 单例模式应该 ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2954转载自 http://rdc.taobao.c ... -
【转】Spring 事务管理高级应用难点剖析:
2012-12-04 16:29 2230转载自 http://www.ibm.com/deve ... -
【转】Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式
2012-12-04 15:11 4483转载自 http://downpour.ite ... -
Hibernate延迟加载和OpenSessionInView
2012-12-03 17:13 3172ThreadLocal& ... -
关于ThreadLocal分析和总结
2012-12-03 15:56 1863什么是ThreadLocal? ...
相关推荐
9. **过滤器顺序**:在`web.xml`中,过滤器的执行顺序很重要。`OpenSessionInViewFilter`必须在`struts2`过滤器之前,以确保在处理请求时能正确地开启和关闭Hibernate Session。 10. **部署描述符** (`web.xml`):...
为了避免字符集问题,还可以在`web.xml`中配置`CharacterEncodingFilter`过滤器,强制所有HTTP请求使用UTF-8编码: ```xml <filter-name>characterEncoding <filter-class>org.springframework.web.filter....
4. **配置过滤器**:在`web.xml`中配置Struts2过滤器和`OpenSessionInViewFilter`,确保请求处理流程正确。 5. **测试**:编写JUnit测试用例来验证各组件的正确集成和工作流程。 在实际项目中,SSH框架的整合不仅...
在SSH2开发中,首先需要配置`web.xml`文件,它是Servlet容器的核心配置文件,负责初始化应用上下文和设置过滤器。在给出的`web.xml`片段中,可以看到以下关键配置: 1. **Spring上下文初始化**:通过`...
在Java Web开发中,SSH(Struts2、Spring和Hibernate)是一个常见的集成框架,用于构建高效、可扩展的Web应用程序。SSH整合涉及三个核心组件:Struts2负责控制层,Spring处理业务逻辑和依赖注入,而Hibernate则管理...
在web.xml中,需要配置Struts2的核心过滤器。 2. **Hibernate** - 作为持久层框架,负责数据库操作。通过SessionFactory和Session对象,管理数据库连接和事务。在web.xml中,可以配置`OpenSessionInViewFilter`来...
- 配置Struts2过滤器: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` 2. **配置...
为了让Hibernate在请求处理过程中自动打开和关闭Session,可以使用`OpenSessionInViewFilter`过滤器。 ```xml <!--Hibernate Session自动开启--> <filter-name>lazy <filter-class>org.springframework.orm....
- 修改`web.xml`,添加Struts2的过滤器配置: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 ...
在SSH配置中,SSH指的是Struts2、Spring和Hibernate三个开源框架的组合,它们协同工作以构建企业级的Java Web应用程序。Struts2负责MVC(模型-视图-控制器)架构,Spring提供依赖注入和事务管理,而Hibernate则作为...
在软件开发中,SSH(Struts2、Spring、Hibernate)是一种常见的Java Web应用框架组合,用于构建高效、模块化的应用程序。SSH配置模板是开发者为了快速搭建项目结构和配置而创建的一种标准化文件,其中包含了这三大...
- Spring提供了一个名为`OpenSessionInViewFilter`的过滤器,用于解决在Web应用中处理请求时的事务边界问题。它确保每个HTTP请求都有一个开启的Hibernate Session。 - 配置过滤器,并指定`sessionFactoryBeanName`...
在给定的文件信息中,虽然标题和描述指向了“SSH配置文件”,但【部分内容】却涉及到了Struts2、Spring、Hibernate这三个框架在Web项目中的集成与配置。因此,以下将围绕这部分内容进行深入解析,详细介绍如何在Web...
- 修改`web.xml`,添加Struts2的过滤器配置,确保请求能被Struts2拦截和处理。 7. **引入Struts2和Spring整合的库**: - 添加Struts2的核心库以及Spring与Struts2的整合包到项目的类路径中。 8. **配置Struts2**...
3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 <!-- 配置 spring 的 OpenSessionInView 过滤器 --> <filter-name>OpenSessionInView ...
在IT领域,特别是Java开发中,SSH(Struts、Spring、Hibernate)框架的整合是构建企业级应用的常见...通过本文的介绍,希望能帮助读者更深入地理解SSH框架整合的工作原理,从而在实际项目中更加熟练地运用这些技术。
- 配置`OpenSessionInViewFilter`过滤器,使得Hibernate会话与HTTP请求绑定在一起,便于处理数据库操作。 - 指定自定义的`struts.xml`文件位置,以及指定Struts2 Action的扫描路径。 - 配置Proxool的可视化监控...
- 在`web.xml`中设置Spring的`ContextLoaderListener`监听器加载上下文,以及`OpenSessionInViewFilter`过滤器,确保每个请求都有一个打开的Session。 - 配置Struts2的Filter,确保请求匹配`.action`结尾的URL,...