`
as619864232
  • 浏览: 324306 次
社区版块
存档分类
最新评论

OpenSessionInViewFilter 的一些了解

 
阅读更多

Spring 中的 OpenSessionInViewFilter 是用于一个请求中共用一个事务的 session,直到请求结束之后,session 才会关闭,从而减少不必要得麻烦。但有时也会带来麻烦,当页面内容大,response.write的时间长,或者是网速慢,服务器与用户间传输时间久。当大量这样的情况出现时,就有连接池连接不足,造成页面假死现象。

本人对于 OpenSessionInViewFilter 原理的一些片面认知:当有个一个请求来时候,会被 OpenSessionInViewFilter 这个拦截器所拦截。首先会从 Spring 容器中取得一个 SessionFacgtory,之后会查找当前线程中的 sessionaFctory 内有没有可用资源,如果没有,说明是一个全新的请求,之后会在当前线程中创建一个 sessionFactory 的资源;如果有,说明请求在结束之前,Action 发生了链式跳转,则会取当前线程中 sessionFactory 的资源。当请求结束之后,会关闭当前 session。

 

OpenSessionInViewFilter 的配置:

...
	<filter>
		<filter-name>sessionView</filter-name>
		<filter-class>
			org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
		</filter-class>
		<init-param>
			<param-name>sessionFactoryBeanName</param-name>
			<param-value>sf</param-value>
		</init-param>
		<init-param>
			<param-name>singleSession</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>flushMode</param-name>
			<param-value>AUTO</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>sessionView</filter-name>
		<url-pattern>*.action</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>*.action</url-pattern>
	</filter-mapping>
分享到:
评论

相关推荐

    关于OpenSessionInViewFilter的学习

    通过阅读《OpenSessionInViewFilter说明.doc》文档,你可以更深入地了解其内部实现细节、配置方法以及如何在实际项目中合理使用。这个文档应该包含了OpenSessionInViewFilter的源码分析、配置示例以及常见问题的解答...

    Spring提供的CharacterEncoding和OpenSessionInView功能

    在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`OpenSessionInViewFilter`,它们对于解决特定问题至关重要。 首先,让我们深入了解一下`CharacterEncodingFilter`。在Web应用中,字符...

    struts2.3+spring3.1.2+hibernate4.1.6 配置说明

    首先,我们需要了解这三大框架的基本作用: - **Struts2**:是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要用于处理用户的请求和控制应用程序流程。 - **Spring**:是一个全面的企业级应用开发...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    解决这个问题的方法有两种:一种是在 web.xml 中使用 Spring 提供的 OpenSessionInViewFilter,另一种是在 application.xml 中配置 OpenSessionInViewFilter。前者通用,后者只能用于 SpringMVC 结构中。 最后,...

    HIBERNATE4开发文档,HIBERNATE4的变化

    在Hibernate4的开发中,相较于之前的版本,存在一些显著的变化,这些变化主要集中在session管理、事务处理、缓存配置以及与Spring框架的集成等方面。以下将详细解释这些关键点: 1. **Spring3.1与Hibernate4的整合*...

    SSH框架整合所需类class.txt

    通过对上述六个关键类的详细介绍,我们不仅了解了它们的基本定义和作用,还深入探讨了它们在SSH框架整合过程中的具体应用场景。这些类对于搭建稳定可靠的SSH框架至关重要,希望本文能为读者提供有价值的参考。在实际...

    ssh+mysql整合[参考].pdf

    首先,让我们详细了解每个框架所需的库: 1. Struts2: - `commons-logging-1.0.4`:日志服务支持。 - `freemarker-2.3.8`:FreeMarker模板引擎,用于生成动态视图。 - `ognl-2.6.11`:Object-Graph Navigation ...

    ssh2开发步骤与项目实践宝典

    2. **Hibernate配置**:使用`OpenSessionInViewFilter`过滤器,该过滤器使得Hibernate在HTTP请求的生命周期内保持一个数据库会话,解决了懒加载(Lazy Loading)时可能出现的错误。`hibernateFilter`将这个过滤器...

    JavaEE程序员简历最新版

    - **临潼德荥纸业有限公司客户管理系统**:这个项目中,黄先生使用了Struts2+Spring+Hibernate,涉及到客户资源管理、服务跟踪等模块,他采用了懒加载优化和Spring的OpenSessionInViewFilter来解决懒加载问题。...

    将_Shiro_作为应用的权限基础_五:SpringMVC+Apache_Shiro+JPA(hibernate)整合配置

    这是Spring针对Hibernate的非JPA实现使用的`OpenSessionInViewFilter`的JPA版本。 #### 2. applicationContext.xml配置详解 `applicationContext.xml`是Spring的基本配置文件之一,主要用于配置数据源、JPA实体...

    ssh框架的搭建的例子

    首先,我们来详细了解SSH框架搭建的步骤: 1. **环境准备**:在MyEclipse等集成开发环境中创建一个新的项目,选择合适的Web应用模板。这一步是为后续的框架配置提供基础。 2. **创建Web工程**:创建一个新的Web...

    spring面试题

    - **OpenSessionInView**:解决长时间请求导致的事务问题,可通过添加 OpenSessionInViewFilter 或 OpenSessionInViewInterceptor。 5. **Spring 事务管理** - **TransactionDefinition**:定义事务属性,如隔离...

    JavaEE---翟明明6500.doc

    3. **临潼德荥纸业有限公司客户管理系统**:此系统包含了客户资源管理等多个功能,翟明明通过使用懒加载、Spring的OpenSessionInViewFilter等技术,解决了性能和session问题,显示了他在解决实际业务问题上的能力。...

    免费简历模板参考JavaEE-小鱼6号.docx

    - **临潼德荥纸业有限公司客户管理系统** 项目,开发者负责了客户资源管理、权限控制等多个模块,利用Spring的OpenSessionInViewFilter解决懒加载问题。 以上是根据简历模板中提及的专业技能和项目经验所解析的...

    struts2+hibernate+spring

    &lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter &lt;!-- ExtremeTable Excel/PDF 导出过滤器 --&gt; &lt;filter-name&gt;eXtremeExport &lt;filter-class&gt;org.extremecomponents....

    Spring学习笔记

    通过上述知识点的详细解释,我们不仅了解了Spring框架的基础概念,还深入学习了如何使用Spring框架进行项目开发,包括IOC、DI、AOP的具体实现方式及最佳实践。这些内容对于掌握Spring框架的核心技术和提升实际开发...

Global site tag (gtag.js) - Google Analytics