`
wtnhwbb
  • 浏览: 166111 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring的几个过滤器

阅读更多

编码过滤器

org.springframework.web.filter.CharacterEncodingFilter的主要功能是设置每个请求的编码,因为当前的浏览器实现通常不会设置请示的编码,即使在HTML页面中指定编码。

此过滤器有两个关键属性,如果forceEncoding属性为true,过滤器会使用encoding的属性值重设每个请求的编码。

Open Session In View 过滤器

参考calvin.blog.javascud.org/post/46.htm

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter的主要功能是每个请求过程绑定一个Hibernate会话,允许在Web视图进行懒加载,即使最初的事务已经完成了。

此过滤器适合于非事务执行和使用HibernateTransactionManager和JtaTransactionManager的业务层事务,后一种情况下,过滤器预先绑定的会话将用于随后的事务执行。

警告:通过每个请求使用单个Hibernate会话方式,应用此过滤器到已经存在的业务逻辑可能会导致问题,尤其是持久对象和Hibernate会话的重新关联必须发生在每个请求之初,避免和同一对象的已加载实例冲突。

可以通过设置singleSession为false,将此过滤器设置成延迟关闭模式。此模式不会每个请求使用单个Hibernate会话,而是每个数据访问操作或事务使用他自己的会话,这些会话将在请求完成后被关闭。
单会话模式可以充分利用一级缓存,但是有一些负作用,比如调用saveOrUpdate或者在回滚事务后继续时。延迟关闭模式允许视图懒加载,但是在整个请求过程中,不提供一级缓存。 

创建会话时需要查询会话工厂,会话工厂Bean名称缺省为sessionFactory,也可以在WEB.XML文件中更改。每个请求时查询会话工厂必须避免初始化顺序问题(当使用ContextLoaderServlet时,应用程序上下文将在过滤器后初始化)。

此过滤器缺省不会刷新Hibernate会话,因为此会话有可能会和服务层事务组合使用,必须避免刷新。如果希望在每次完成请求处理后刷新事务,必 须重写closeSession方法激活flush方法,重写getSession方法返回一个刷新模式不是FlushMode.NEVER的会话。


分享到:
评论

相关推荐

    全面解析Spring Security 过滤器链的机制和特性

    Spring Security 过滤器链的机制和特性可以总结为以下几点: * Spring Security 的 FilterChainProxy 可以代理多条过滤器链,并根据不同的 URI 匹配策略进行分发。 * 每个请求每次只能被分发到一条过滤器链。 * 每...

    关于ip的过滤器 spring security例子

    本文将深入探讨如何在Spring Security中实现IP过滤器,以便控制访问应用的客户端IP地址。 首先,我们需要理解Spring Security的基本架构。它是一个多层次的组件模型,其中包括认证、授权和会话管理等核心功能。在...

    几个有用的过滤器 小技巧

    每个过滤器都是通过实现`javax.servlet.Filter`接口并覆盖`doFilter()`方法来工作的,然后在`web.xml`或Spring Boot的配置文件中进行注册和配置。理解过滤器的工作原理和使用方法是Java EE开发中的重要技能,它能...

    管道过滤器程序,主要用java实现

    每个过滤器都是一个独立的类,负责对输入数据进行某种特定的处理,并将处理后的结果传递给下一个过滤器。这个过程就像是数据通过一根管道,依次经过各个过滤阶段。这种模式允许我们将复杂的任务分解为多个简单的部分...

    spring的几个jar包

    标题 "spring的几个jar包" 暗示了我们讨论的核心是Spring框架,以及与之相关的几个关键库。描述中提到的"spring.jar"、"log4j.jar"和"commons-dbcp.jar"等五个jar文件是Java应用程序开发中常用的组件,它们在Spring...

    包含过滤器的一个简单登陆实例

    3. **过滤器链**:多个过滤器可以串联起来形成过滤器链,每个过滤器按照声明的顺序依次执行。如果前一个过滤器未阻止请求,请求会传递给下一个过滤器。 4. **登录逻辑**:在我们的例子中,`doFilter`方法内会检查...

    springboot_redis

    通常,集成包括以下几个关键步骤: 1. **依赖添加**:首先,我们需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中引入Redis相关的依赖。Spring Boot提供了自动配置支持,所以只需要添加`spring-boot-...

    实现过滤器

    在实际项目中,我们常常会根据需求组合多个过滤器,形成一个过滤器链,每个过滤器按照在`web.xml`中声明的顺序依次执行。理解并熟练掌握过滤器的使用,对于构建高效、安全的Web应用至关重要。通过实践和不断优化,...

    ssm框架的登录过滤器

    在SSM框架中,我们可以自定义一个实现了javax.servlet.Filter接口的类,然后在web.xml或Spring的配置文件中注册这个过滤器。过滤器的主要方法包括doFilter(),init()和destroy()。 1. **doFilter()**:这是过滤器的...

    Spring Security3 安全 个人总结

    Spring Security3 提供了一系列的过滤器,每个过滤器负责处理不同类型的安全请求。常见的过滤器包括: * SecurityContextPersistenceFilter:创建安全上下文 * UsernamePasswordAuthenticationFilter:完成认证处理...

    springSecurity 实现传参

    当用户尝试登录时,这个过滤器会捕获请求,验证用户名和密码,如果验证成功,就会创建一个`Authentication`对象并存储在`SecurityContext`中。 实现登录验证和参数传递,你需要做以下几步: 1. **配置Spring ...

    Spring Security模块

    2. **过滤器链**:Spring Security 的过滤器链开始工作,首先是 `DelegatingFilterProxy`,它将请求转发给 Spring Security 的过滤器链。 3. **匿名身份验证**:如果用户尚未登录,Spring Security 会提供一个匿名...

    过滤器--控制不同权限用户访问不同文件夹代码.rar

    一个过滤器可以拦截请求和响应,在请求到达目标Servlet或者响应返回给客户端之前进行处理。在用户试图访问特定资源时,过滤器会检查用户的身份和权限,如果满足条件,允许请求继续传递;否则,阻止请求并返回相应的...

    狂神Spring Security静态资源

    这通常涉及到以下几个步骤: 1. **排除静态资源路径**:可以通过配置`WebSecurity`类的`ignoring()`方法,将静态资源目录如`/static`, `/resources`, `/public`等从安全控制中排除。这样,这些资源就不需要经过完整...

    最新Spring Cloud Gateway 官方参考指南-中文版-3.x

    在Spring Cloud Gateway中,有几个关键的概念: 1. **Route(路由)**:是网关的基础模块,由ID、目标URI、一组谓词(Predicates)和一组过滤器(Filters)组成。当谓词为真时,路由匹配成功,请求将被转发到相应的...

    spring spring security2.5 jar

    3. **过滤器链**:Spring Security的核心在于其过滤器链,它拦截HTTP请求并应用安全策略。`FilterSecurityInterceptor`是其中的关键组件,负责根据配置的访问规则对请求进行处理。 4. **会话管理**:Spring ...

    SpringSecurity源码

    1. **过滤器链**:SpringSecurity的核心是基于过滤器的Web安全模型,它通过一系列预定义的过滤器(如`HttpSessionAuthenticationFilter`、`UsernamePasswordAuthenticationFilter`等)拦截HTTP请求,执行相应的安全...

    springsecurity学习笔记

    4. **Filter Chain**:Spring Security通过一系列过滤器形成一个过滤链,每个过滤器都有特定的任务,如BasicAuthenticationFilter处理基本认证,RememberMeAuthenticationFilter处理记住我功能等。 5. **Session ...

    Spring Security3.1入门Demo

    其中,最重要的几个过滤器包括`DelegatingFilterProxy`(用于代理Spring Security的Filter),`ChannelProcessingFilter`(处理HTTPS/HTTP请求),`HttpSessionAuthenticationStrategy`(管理会话认证)和`...

Global site tag (gtag.js) - Google Analytics