配置openSessionInView的时候发现并没有起作用
最后发现原因是:
在web.xml中 osiv的filter在webwork的filter之后。
参考自http://www.iteye.com/topic/20671
这是web.xml里的配置,注意下面的前后顺序
Java代码
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
上面的<filter-mapping>顺序就会使OpenSessionInView失效.正确的顺序应该是
Java代码
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
即opensession的<filter-mapping>应该位于webwork的<filter-mapping>前
分享到:
相关推荐
### Spring + Hibernate OpenSessionInView 模式的理解和应用 在Java Web开发中,Spring与Hibernate作为两个重要的框架,经常被一起使用来实现业务逻辑与数据持久化的处理。而在使用这两个框架时,为了更好地管理...
2. **启用OpenSessionInView过滤器**:在web.xml中配置OpenSessionInViewFilter,该过滤器会在HTTP请求开始时开启一个新的Hibernate Session,并在请求结束时提交或回滚事务并关闭Session。 3. **编写业务逻辑**:在...
为了练手培训,给大家准备的 Open Session In View 的简单例子,纯代码,大家可以参考,其中主要说了六部分内容: 1.通过接口编程 2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载...
在此配置中,我们定义了一个名为`openSessionInViewInterceptor`的拦截器,并将它绑定到了一个特定的URL映射上。需要注意的是,必须指定`sessionFactory`的引用。 ##### 2. OpenSessionInViewFilter配置 ```xml ...
同时,需要注意的是,OpenSessionInView模式虽然方便,但也会带来潜在的问题,如事务边界不清晰和会话泄漏。因此,在实际应用中,应结合具体需求谨慎使用,并考虑使用更现代的解决方案,如Spring Data JPA的...
配置OpenSessionInView过滤器**: 为了确保在一个请求生命周期内只开启一次Session,可以使用Spring提供的`OpenSessionInViewFilter`。其配置如下: ```xml <filter-name>openSessionInView <filter-class>org....
通过在Web应用的配置文件(如web.xml)中添加该过滤器,可以全局设定请求和响应的字符编码,确保数据在传输过程中的正确性。 配置`CharacterEncodingFilter`通常如下: ```xml <filter-name>...
OpenSessionInView(OSIV)模式是SSH整合中常见的一种优化策略,它在用户的一次HTTP请求过程中保持Hibernate Session,避免了多次打开和关闭Session,减少了N+1查询问题,提高了性能。 **Spring** 是一个全面的企业...
- **配置延迟加载时使用OpenSessionInView**: OpenSessionInView是一种技术,用于解决Hibernate在多线程环境下的一级缓存问题。通过在web.xml中配置`OpenSessionInViewFilter`,可以实现持久化层的事务与视图渲染...
OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问...这个文档应该包含了OpenSessionInViewFilter的源码分析、配置示例以及常见问题的解答,对理解该过滤器的功能和工作原理非常有帮助。
- 配置OpenSessionInView过滤器以实现懒加载: ```xml <filter-name>openSessionInView <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter <filter-name>...
在整合JSF、Spring和Hibernate时,通常会使用Spring的OpenSessionInView模式来处理数据库会话。这能确保在HTTP请求的整个生命周期内保持有效的Hibernate Session,从而避免可能出现的数据访问问题。 至于压缩包中的...
`数据库.txt` 可能包含了关于数据库设计、SQL查询优化或其他数据库管理方面的内容,而 `osiv` 文件则可能详细阐述了OSIV的工作原理或如何在项目中配置和使用。 总结来说,`lazy="true"` 是一种有效的性能优化策略,...
**表格13**: web.xml配置文件OpenSessionInView设置(必需设置) ```xml <filter-name>openSessionInViewFilter <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter ...
本方案主要探讨如何在基于Hibernate和Spring框架的环境中实现多数据库的管理,特别是在`OpenSessionInView`模式下的配置。 首先,我们看到在`applicationContext.xml`配置文件中定义了两个数据源,一个用于读操作...
在整合过程中,首先需要在`web.xml`中配置监听器,以便在Web应用启动时加载Spring的配置文件,如`applicationContext.xml`。配置完成后,Spring会根据配置文件管理各个bean,实现依赖注入。 二、Hibernate框架集成 ...
8. **配置OpenSessionInView过滤器**: - Spring提供了一个名为`OpenSessionInViewFilter`的过滤器,用于解决在Web应用中处理请求时的事务边界问题。它确保每个HTTP请求都有一个开启的Hibernate Session。 - 配置...
3,在web.xml中配置 spring 的 OpenSessionInView 过滤器(解决抛LazyInitializationException的问题) 1,配置 <!-- 配置 spring 的 OpenSessionInView 过滤器 --> <filter-name>OpenSessionInView ...
在Spring中,通过开启`<tx:annotation-driven>`和配置`HibernateTransactionManager`,结合特定的拦截器,可以实现OpenSessionInView。 5. **整合过程**:SSH整合涉及配置多个文件,包括web.xml(应用部署描述符)...