Java 过滤器

---恢复内容开始---

过滤器是一个驻留在服务器端的Web组建,可以截取客户端和资源之间的请求和响应信息。Web过滤器是不能直接处理客户端请求,返回客户端数据的!

举例来说:当我们登录CSDN或邮箱的时候,输入应用名和密码就可以进入我们请求的页面,当我们点击退出后,下一次进入时需要重新输入登录用户名与密码。这是过滤器应用的一个场景。

我们需要了解:

  • 过滤器的工作原理
  • 生命周期
  • 过滤器的几种类型
  • 登录认证实例

1、过滤器的工作原理

上面的图简单说明了过滤器在客户端和服务器之间的作用。

2、过滤器的生命周期

Web容器启动的时候,会加载web.xml并执行一次init()函数,然后每次客户端的请求都会执行doFilter()函数,最后当容器关闭的时候会执行destroy()函数

上面显示的是一个Web应用程序的结构,所有的Webroot中的内容都是Web的内容,Web-INF下所有的资源都不能直接被url访问,其他的文件,用户可以通过url访问。

关于url-pattern的书写规范,

(A)一个filter映射一个url:这种情况下的url与url-pattern中配置的url进行精确匹配。url-pattern中的访问路径必须以  /  开头,表示的是Web应用程序的根目录,而不是Web站点的根目录,路径名称可以是多级目录的形式,例如

<url-pattern>/demo/index.html</url-pattern>

(B)一个filter映射多个url:这种情况下可以使用通配符,需要注意的也有两种情况:

(1)*.扩展名,*点前面不能有 “/”

(2)以/开头,并以 /* 结尾,例如

<url-pattern>/action/*</url-pattern>表示的是整个action目录下的url

<url-pattern>/</url-pattern>表示的是整个web应用程序下的url

过滤器链

---恢复内容结束---

过滤器是一个驻留在服务器端的Web组建,可以截取客户端和资源之间的请求和响应信息。Web过滤器是不能直接处理客户端请求,返回客户端数据的!

举例来说:当我们登录CSDN或邮箱的时候,输入应用名和密码就可以进入我们请求的页面,当我们点击退出后,下一次进入时需要重新输入登录用户名与密码。这是过滤器应用的一个场景。

我们需要了解:

  • 过滤器的工作原理
  • 生命周期
  • 过滤器的几种类型
  • 登录认证实例

1、过滤器的工作原理

上面的图简单说明了过滤器在客户端和服务器之间的作用。

2、过滤器的生命周期

Web容器启动的时候,会加载web.xml并执行一次init()函数,然后每次客户端的请求都会执行doFilter()函数,最后当容器关闭的时候会执行destroy()函数

上面显示的是一个Web应用程序的结构,所有的Webroot中的内容都是Web的内容,Web-INF下所有的资源都不能直接被url访问,其他的文件,用户可以通过url访问。

关于url-pattern的书写规范,

(A)一个filter映射一个url:这种情况下的url与url-pattern中配置的url进行精确匹配。url-pattern中的访问路径必须以  /  开头,表示的是Web应用程序的根目录,而不是Web站点的根目录,路径名称可以是多级目录的形式,例如

<url-pattern>/demo/index.html</url-pattern>

(B)一个filter映射多个url:这种情况下可以使用通配符,需要注意的也有两种情况:

(1)*.扩展名,*点前面不能有 “/”

(2)以/开头,并以 /* 结尾,例如

<url-pattern>/action/*</url-pattern>表示的是整个action目录下的url

<url-pattern>/</url-pattern>表示的是整个web应用程序下的url

过滤器链

时间: 2024-10-08 14:02:54

Java 过滤器的相关文章

Java 过滤器、监听器、拦截器的区别

原文:http://www.360doc.com/content/10/0601/09/495229_30616324.shtml 1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request.Response)统一设置编码,简化操作:同时还可进行逻辑判断,如用户是否

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月10日 http://www.cnblogs.com/

java过滤器

过滤器就是在源数据和目的数据之间起过滤作用的中间件. Web应用中,在处理请求时,经常有一些公共的工作,比如设置字符集.这样的工作需要写在每个页面,这样的写法费力且不好修改.使用过滤器就像在这些流程前加了一道拦,将需要进行的操作放到拦里执行,而所有经过这道拦的流程都会“被”执行该操作. 开发一个过滤器必须实现Java定义好的javax.servlet.Filter接口: 这一接口含有三个过滤器必须执行的方法: doFilter(ServletRequest, ServletResponse, F

java 过滤器实现

声明:该文来自红黑联盟网站,先贴上源地址. 1.浏览器不使用缓存设置过滤器 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 用于的使 Browser 不缓存页面的过滤器 */ public class ForceNoCacheFilter implements Filter { public void doFilter(ServletR

记性不如烂笔头33-利用java过滤器实现压缩响应正文内容

在前面的Response的相关内容中,就提到了把数据压缩然后传到浏览器上,通过压缩,能够提升网络文件的传输效率,在很多的场所都需要实用. 如果我们需要在所有的页面都实现压缩,那么是不是把这个加在某一个地方就一起解决了呢?貌似我们能够在过滤器中加载很多的内容,那么是不是也可以把这个也加在过滤器中呢?答案是可以的. 我们可以通过增强HttpServletResponseWrapper对象,压缩响应正文内容. 1. 原理 通过过滤器filter向目标页面传递一个自定义的response对象.在自定义的

cookie、session和java过滤器

基础知识理解: cookie.session和过滤器通常都是用在web应用中,cookie和session用来保存一定的数据,过滤器Filter则是在浏览器发出请求之后,而后台执行特定的请求之前发生一定的作用.之所以把这三个放一起,是因为有很多时候都会是把他们结合在一起使用,例如有些登陆程序. cookie是浏览器的机制,session是服务器的机制,但是实际上cookie也是由服务器生成的,之后返回给浏览器的,并不是浏览器本身生成.当浏览器发送某个请求时,如果拥有有效的cookie则会把这个c

Java过滤器与SpringMVC拦截器之间的关系与区别

今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能少走些弯路).过滤器和拦截器的区别:①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②

java过滤器和监听器详解

 过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链,最后把请求/响应交给请求的Web资源处理.请求信息在过滤器链中可以被修改,也可以根据条件让请求不发往资源处理器,并直接向客户机发回一个响应.当资源处理器完成了对资源的处理后,响应信息将逐级逆向返回.同样在这个过程中,用户可以修改响应信息,从而完成一定的任务.

[javaweb]Java过滤器与包装设计模式的实用案例.

在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求. 一.Decorator设计模式 1.1.Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法. 使用Decorator设计模式对方法进行增强. 在阎宏博士的<JAVA与模式>一书中开头是这样

Java 过滤器的作用

Servlet API 非常久曾经就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充.在 J2EE 探索者 系列文章的最后一篇中,作者 Kyle Gabhart 将向您介绍 Servlet 过滤器体系结构,定义过滤器的很多应用,并指导您完毕典型过滤器实现的三个步骤.他还会透露 bean 的一些激动人心的变化,估计刚公布的 Java Servlet 2.4 规范会引入这些变化. Servlet 过滤器是可插入的 Web 组件,它同意我们实现 Web 应用程