过滤器链-学习笔记

a)一个Web应用可以有0个或多个Filter,多个Filter的组合就是过滤器链
b)多个Filter的执行先后顺序,与web.xml文件中配置的顺序有关
c)chain.doFilter(request,response)具有二义性:

>如果有下一个Filter时,将请求转发给下一个Filter
>如果无下一个Filter时,将请求转发给Web资源(serlvet/jsp/html)
d)可以将web资源中的一些公共代码,提取出来,放入Filter中

`<filter>
    <filter-name>FilterDemo1</filter-name>
    <filter-class>cn.web.servlet.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
    <filter-name>FilterDemo1</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>FilterDemo2</filter-name>
    <filter-class>cn.web.servlet.filter.FilterDemo2</filter-class>
</filter>
<filter-mapping>
    <filter-name>FilterDemo2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
`

`import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ShowServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html; charset=UTF-8");
    response.getWriter().write("欢迎学习Servlet下篇");
}

}`


import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class FilterDemo2 implements Filter {

    public void destroy() {
    }
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
        response.setContentType("text/html;charset=UTF-8");
        System.out.println("第二个拦截器:Filter2");
        //放行请求[调用]
        chain.doFilter(request,response);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
    }

}

原文地址:http://blog.51cto.com/357712148/2105077

时间: 2024-11-07 17:10:56

过滤器链-学习笔记的相关文章

GNU工具链学习笔记

GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和数据,可用来连接成可执行文件或共享目标文件;可执行文件(Executable File),ELF可执行文件:共享目标文件(Shared Object File,*.so),包含代码和数据:核心转储文件(Core Dump File),进程意外终止时,系统将该进程的地址空间内容和其他信息保存到该文件中

JavaScript作用域(链)学习笔记

作用域是javascript老生常谈的问题,在面试题中也经常出现.此文记录本人对js作用域的理解.从以下三个方面深入探讨js作用域和js作用域链. 1.什么是作用域? 2.什么是作用域链? 3.常见面试题. 一.什么是作用域? 熟悉编程的人都接触过作用域,比如全局变量和局部变量之分.作用域是变量和函数可以访问的范围,即作用域控制着变量和函数的可见性和生命周期. var name = "Aralic"; function person () { //局部变量 var age = &quo

过滤器简介--学习笔记

a)Filter是SUN公司提供的一个资源过滤器接口,不同的Web容器有着不同的实现b)Filter位于Web服务器和Web资源(Servlet/Jsp/Html)之间c)过滤请求和响应二者d)Filter可以进行简单判段,是否将请求放行给Web资源e)Filter的开发过程: >类 implements javax.servlet.Filter接口>在web.xml文件配置Filter过滤器,告之Web服务器有过滤器的存在web.xml中的配置信息如下:<filter><f

JavaScript原型与原型链学习笔记

一.什么是原型?原型是一个对象,其他对象可以通过它实现属性继承.简单的说就是任何一个对象都可以成为原型 prototype属性: 我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象包含可以有特定类型的所有实例共享的属性和方法.这个对象就是原型对象(也就是某个对象的原型所引用的对象).1.总之只要创建了函数,该函数都有一个prototype属性,指向函数的原型对象. 如上图,Person是一个函数,右侧的方框就是它的原型. 2.默认情况下所有原型对象都会

小蚁区块链非主流学习笔记(一)

走进区块链,小蚁区块链学习笔记 ? 因为对虚拟机技术有一些了解,我受邀成为了小蚁的核心开发者. https://www.antshares.org ? 帮助开发了小蚁虚拟机的c#编译模块,以此为契机,让我走近了本来和一个游戏人没啥关系的金融开发领域. ? 立此存照,开始学习区块链技术.

[原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Servlet学习笔记(八)—— 自定义过滤器的编写改进:自定义实现FilterChain

笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,但是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤,最后response过滤,并且中间几项过滤的顺序不能动态改变.所以这里做个改进,实现一个过滤顺序的FilterChain. 多个Filter的执行顺序在这篇博文中得到很仔细的讲解,总结一点,多个过滤器的执行顺序是根据web.xml中不同<filter-mapping>的顺序来先后执行的,比如: <?xml version="1.0"

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

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

Javaweb学习笔记9—过滤器

? 今天来讲javaweb的第9阶段学习. ? 过滤器,我在本次的思维导图中将过滤器和监听器放在一起总结了,监听器比较简单就不单独写了. ? 老规矩,首先先用一张思维导图来展现今天的博客内容. ? ? ? ? ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 ? 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. ? ? ? ? ? ? 1* 作用: ? ? ? 用于过滤请求(Request)与响应(Response)的数据内容.