Javaweb学习笔记9—过滤器

?

今天来讲javaweb的第9阶段学习。

?

过滤器,我在本次的思维导图中将过滤器和监听器放在一起总结了,监听器比较简单就不单独写了。

?

老规矩,首先先用一张思维导图来展现今天的博客内容。

?

?
?

?

ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载

?

另外:如果图看不清的话请右击---在新窗口中打开会清楚很多。

?

?

?

?

?

?

1* 作用:

?

?

?

用于过滤请求(Request)与响应(Response)的数据内容.

?

2* 发展:

?

* Servlet 2.3版本出现Filter功能.

?

* Servlet 2.4版本对Filter进行补充.

?

* 目前主流版本为Servlet 2.5.

?

* 当前最新版本为Servlet 3.0.

?

?

?

?

?

二* 使用Filter:

?

1* 自定义过滤器,实现Filter接口,并且重写其提供的方法.

?

?

2* 对web.xml文件进行相关配置:

?

?

?

?

3* 注意:

?

* 使用<filter-name>标签定义的Filter名称是唯一的.

?

* 使用<url-pattern>标签定义映射路径允许配置多个,表示同时过滤多个资源(静态或动态).

?

?

?

三* 生命周期:

?

1 * 构造函数:

?

* 用于Filter的实例化.

?

* 在Filter的生命周期中只能执行一次.

?

* 线程安全问题(单例多线程的)

?

2* init()

?

* 用于Filter的必要初始化工作.

?

* 在Filter的生命周期中只能执行一次.

?

3* doFilter()

?

* 用于Filter的过滤工作.

?

* 在Filter的生命周期中执行多次(每次拦截每次执行).

?

4* destroy()

?

* 用于Filter的资源释放工作.

?

* 在Filter的生命周期中只能执行一次.

?

四* 过滤器链:

?

1* 什么叫做链:

?

????就是多个过滤器同时过滤同一个资源(静态或动态).

?

?

?

* 控制过滤器链中的过滤器谁先执行:

?

* 通过web.xml文件中的<filter-mapping>标签出现的先后顺序.

?

哪个Filter的<filter-mapping>标签先出现先执行,后出现后执行.

?

?

?

2* 过滤器链执行的顺序:

?

* 如果不是过滤器链的最后一个过滤器,执行chain.doFilter()方法,是发送到下一个过滤器.

?

?

?

* 如果是过滤器链的最后一个过滤器,执行chain.doFilter()方法,是发送到对应Web资源.

?

?

?

3* Filter的映射配置:

?

A* 配置方式:

?

* 完全匹配:/servlet/test1

?

* 目录匹配:/servlet/

?

* 扩展名匹配:*.do

?

?

?

* 优先级由高到低:完全匹配 -> 目录匹配 -> 扩展名匹配.

?

?

?

?

B* 过滤Servlet:

?

如果需要拦截的是Servlet的话,有两种方式配置拦截路径:

?

?

?

* <url-pattern>Servlet的映射配置</url-pattern>

?

* <servlet-name>Servlet的名称</servlet-name>

?

例如:

?

  • 使用<url-pattern>标签:<url-pattern>/hello</url-pattern>
  • ?
  • 使用<servlet-name>标签:<servlet-name>HelloServlet</servlet-name>
  • ?

?

?

?

?

C* <dispatcher>标签:

?

<dispatcher>标签配置到达Servlet的方法,有四种取值:REQUEST、FORWARD、INCLUDE和ERROR。可以同时配置多个<dispatcher>标签,如果没有配置<dispatcher>标签,默认为REQUEST。这四种取值的区别如下:

?

  • REQUEST:表示仅当直接请求Servlet时才生效。
  • ?
  • FORWARD:表示仅当某Servlet通过FORWARD到该Servlet时才生效。
  • ?
  • INCLUDE:JSP中可以通过<jsp:include>标签请求某Servlet或调用RequestDispatcher的forward()方法请求某Servlet,仅这种情况下有效。
  • ?
  • ERROR:JSP中可以通过<%@ page errorPage="error.jsp">标签指定错误处理页面,仅这种情况下有效。
  • ?

?

?

<url-pattern>标签与<dispatcher>标签的关系是"且"的关系。只有满足<url-pattern>标签的条件,且满足<dispatcher>标签的条件时,当前过滤器才能生效。

?

?

?

* 实际开发常用方式:

?

* REQUEST

?

* FORWARD

?

?

?

?

?

* Filter的应用案例:

?

* 全站乱码问题.

?

* 自动登录案例.

?

* 禁用缓存案例.

?

* 权限管理案例 - 粗粒度权限管理.

?

?

?

时间: 2024-08-24 22:15:33

Javaweb学习笔记9—过滤器的相关文章

jQuery学习笔记之过滤器三(向上查找兄弟元素、向下查找兄弟元素)

向上查找兄弟元素的方法:prev方法.prevAll方法.prevUntil方法 向下查找兄弟元素:next方法.nextAll方法.nextUntil方法 向上查找兄弟元素 1.prev方法 2.prevAll方法 3.prevUntil方法 向下查找兄弟元素 1.next方法 2.nextAll方法 3.nextUntil方法 jQuery学习笔记之过滤器三(向上查找兄弟元素.向下查找兄弟元素)

学习笔记_过滤器详细(过滤器JavaWeb三大组件之一)

过滤器详细 1 过滤器的生命周期 我们已经学习过Servlet的生命周期,那么Filter的生命周期也就没有什么难度了! (l)  init(FilterConfig):在服务器启动时会创建Filter实例,并且每个类型的Filter只创建一个实例,从此不再创建!在创建完Filter实例后,会马上调用init()方法完成初始化工作,这个方法只会被执行一次: (l)  doFilter(ServletRequest req,ServletResponse res,FilterChain chain

学习笔记_过滤器概述(过滤器JavaWeb三大组件之一)

过滤器Filter Filter和Lister是Servlet规范里的两个高级特性.不同于Servlet,它们不用于处理客户端请求,只用于对request.response进行修改或者对context.session.request事件进行监听. Filter意为滤镜或者过滤器,用于Servlet之外对request或者response进行修改.Filter提出了滤镜链的概念,一个Filterchain包括多个F 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它

学习笔记_过滤器详细_2(过滤器JavaWeb三大组件之一)

过滤器详细 5 四种拦截方式 我们来做个测试,写一个过滤器,指定过滤的资源为b.jsp,然后我们在浏览器中直接访问b.jsp,你会发现过滤器执行了! 但是,当我们在a.jsp中request.getRequestDispathcer(“/b.jsp”).forward(request,response)时,就不会再执行过滤器了!也就是说,默认情况下,只能直接访问目标资源才会执行过滤器,而forward执行目标资源,不会执行过滤器!(跳转的不会执行F) public class MyFilter

【JAVAWEB学习笔记】13_servlet

JavaWeb核心之Servlet 教学导航 学习目标: 案例一.完成用户登录功能 案例二.记录成功登录系统的人次 一.Servlet简介 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API  动态的向客户端输出内容 servlet规范:包含三个技术点 1)servlet技术 2)filter技术---过滤器 3)listener技术--

javaweb学习笔记(二)

<p>练习好多天了,还是不会用博客编辑器,原谅我!!</p> 组织每天监督,今天学习的是filter过滤器 在很多国内博客里找不到具体的实例,所以到外国网站上找了一个来练习 利用filter实现了登陆页面验证功能 没有很多的文字叙述,我打算周末补充心得,每天下班找代码,敲代码.重要的事说三遍(总结:总结:总结:) 一定要会总结,不然一天都白费了 AuthenticationFilter.java package com.journaldev.servlet.filters; imp

Javaweb学习笔记4—Reuest&amp;Response

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第四段学习. Request和Response还是比较重要的 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 响应对象 1,Response响应: 常用响应对象:ServletResponse HttpServletResp

Javaweb学习笔记5—Cookie&amp;Session

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍  今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.会话管理技术概述 1 什么是会话? 这里的会话指的是web开发中的一次通话过程,当打开浏览

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan