码迷,mamicode.com
首页 > 编程语言 > 详细

Java 过滤器

时间:2015-01-20 00:53:05      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:

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

过滤器是一个驻留在服务器端的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

 

过滤器链

 技术分享

 

Java 过滤器

标签:

原文地址:http://www.cnblogs.com/CBDoctor/p/4235082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!