j2ee中的过滤器Filter使用

J2EE学习笔记(五)之Servlet中的Filter过滤器 一、Filter简介上一话提到了Servlet原理,当我们在运行一个JSP页面的时候,其实JSP页面会被编译成Servlet文件,Servlet文件来处理和响应用户的请求。Filter过滤器可以认为是Servlet的一种“加强版”,可以对用户的请求进行预处理,也可以对HttpServletResponse进行后处理。二、案例一——字符编码什么时候需要用到Filter呢? 来举一个小栗子~~~我们在 阅读详情

一、过滤器入门

1. 概念:

    Filter 过滤器,又称拦截器

    实现 Filter 接口的类我们称之为 Filter (过滤器或拦截器)

    Filter能对用户访问的资源进行拦截

   

    在Filter里面可以只用 request获得请求消息  用response写入响应消息

    chain.doFilter(request, response) 方法放行  目标Servlet使用的是同一个请求和响应

    doFilter 方法后面的代码会执行,在目标Servlet 返回响应后执行, 也可以使用同一个请求和响应

 

2. 实现:

    1) 写一个类实现 Filter 接口 , 在doFilter 方法中写功能代码

    public class Filter1 implements Filter {

           public void doFilter(ServletRequest request, ServletResponse response,

           FilterChain chain) throws IOException, ServletException {

           System.out.println("before");

           chain.doFilter(request, response);

           System.out.println("after");

    }

    2) 在web.xml中配置Filter拦截的资源路径

    <filter>

       <filter-name>filter1</filter-name>

       <filter-class>cn.itcast.filter.Filter1</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>filter1</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

 

3. Filter 链

    可以针对某一个url配置多个Filter, 这些Filter就会组成一个Filter链, 用FilterChain对象表示

    FilterChain对象的doFilter方法作用就是让Filter链上的当前拦截器放行,请求进入下一个Filter

 

    response 的中文编码问题, 只能在response.getWriter() 第一次被调用之前指定编码才有效

    一旦指定了编码,当前Filter链和目标Servlet使用的response都是同一个编码,因为用的本来就是一个

    response

 

4. Filter 与 Servlet

    Filter 就像一个特殊的Servlet

    Filter 在web容器启动是就初始化

    Filter 可以实现拦截功能,因为有个 FilterChain 对象,有个 doFilter方法可以实现对访问资源的放行

二、 Filter细节

1. Filter 的生命周期

    实现Filter的init和destroy方法就可以观察Filter的声明周期

    web容器启动时,会读web.xml文件,将所有的Filter都初始化

    Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁

 

Filter链中所有的Filter的拦截顺序   按照 在 web.xml 文件中的配置的先后顺序来进行拦截

 

2. 获得 Filter的初始化参数

    在 web.xml 文件中为Filter 配置初始化参数

    <init-param>

       <param-name>name</param-name>

       <param-value>xxxx</param-value>

    </init-param>

    在 init 方法中读取配置文件

    public void init(FilterConfig filterConfig) throws ServletException {

       String name = filterConfig.getInitParameter("name");

      

    }

 

3. 拦截 html页面

1) 文件缓存

 由于html页面的url是没有在 web.xml 文件中配置的 服务器会调用DefaultServlet

在DefaultServlet 中会检查文件的修改时间, 如果没有修改则发送 304头

这样就会导致过滤器也被缓存

可以通过发送 200 状态码,但是 html 页面的数据仍然得不到读取

 

2) html 页面乱码

在 Filter 和 Html 中指定编码为 utf-8 , 这样会导致 html 页面中文乱码

原因是 html 页面数据会通过 DefaultServlet 发送

查看 web.xml 文件 发现DefaultServlet默认使用 gbk编码

修改配置 加初始化参数

<init-param>

      <param-name>fileEncoding</param-name>

      <param-value>utf-8</param-value>

 </init-param>

 

4. Filter拦截方式

Filter的dispatcher元素有4种取值, 分别代表四种拦截方式

REQUEST 拦截直接的请求方式

INCLUDE 拦截页面包含的访问方式

FORWARD 拦截请求转发访问方式

ERROR 拦截出错页面的访问方式

 

5. filter-mapping元素配置

拦截的url地址可以使用 /*  *.扩展名

<filter-mapping> 元素中可以配置多个地址 用于拦截多个url或servlet

对于多个条件都符合的url, filter会进行多次拦截

 

三、 过滤器案例

1. 缓存

禁止浏览器缓存所有动态页面

response.setDateHeader("Expires",-1);

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

 

强制浏览器缓存所有的静态页面 html jpg css

String uri = request.getRequestURI();

String time = null;

if(uri.endsWith(".html"))

    time = config.getInitParameter("html");

else if(uri.endsWith(".jpg"))

    time = config.getInitParameter("jpg");

long l = Long.parseLong(time);

response.setDateHeader("Expires",System.currentTimeMillis() + l);

 

2. 实现用户自动登陆

1)在用户登陆成功后,发送一个名称为user的cookie给客户端,cookie的值为用户名和md5加密后的密码

2)编写过滤器检查用户是否带名为user的cookie来,如果有,检查用户名和密码做自动登陆

 

核心思路:

用户登陆后找LoginServlet , LoginServlet中做登陆,如果登陆成功, 获得用户选择的自动登陆时间

创建一个新的cookie 将用户名和密码用 “_”连接作为value,autoLogin作为name

设置cookie 的有效路径 request.getContextPath() 作用于整个web应用

设置cookie的有效时间为 autologintime

发送 cookie

 

写一个过滤器,对全站的资源进行拦截, 检查用户发送的cookie有没有一个名为autologin的

如果有 取出用户名和密码 再次做登陆处理 如果登陆成功, 将 user 存入session ,放行

 

出于安全性考虑, cookie 中的密码应该进行 md5 加密

 

3. 统一全站字符编码

response和request的post的方式好办

// 解决全站的乱码问题 request response

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("utf-8"); // 只对 post方式起作用,对get方式不起作用

 

对于request的get方式需要手工转换,此时就需要用到 包装设计模式decorator

包装 getParameter方法 如果this.request.getMethod();是get就进行手动编码再返回value

if("get".equalsIgnoreCase(method))

       value = new String(value.getBytes("iso-8859-1"), "utf-8");

4. 为全站添加页眉和页脚

添加用户模块

 

5. 发送压缩后的响应数据

  简单分析:

    给 IE 浏览器会送的数据 需要进行gzip 压缩  访问速度快 省点浏览

    在最后将数据打给浏览器的时候, 将 response 中的数据全部压缩

    在过滤器放行的时候传入一个 假的 response 提供缓冲区, 这样后面的资源都会写入我的缓冲区

    缓冲区满了 或者 请求快结束的时候 将缓冲区的数据压缩后写入 真的 response  
   

    j2se 提供了一个流GZIPOutputStream 用于 gzip压缩

    j2se 提供了一个流 ZIPOutputStream 用于 zip 压缩

  具体思路:

   1当response传给servlet后servlet会调用getOutputStream往里写数据。

   2写入response的数据无法拿出 所以需要将response包装成我们可以拿到数据的myresponse再放行

   3.1在myresponse中传入被包装的response.

3.2然后重写getOutputStream和getWriter方法让这两个方法得到的对象的写出方法写出到一个指定的

缓冲区中

   3.3首先要建立指定的缓冲区ByteArrayOutputStream baout = new ByteArrayOutputStream();     

   3.4重写getOutputStream时发现ServletOutputStream对象不能指定缓冲区,

所以建立myOutputStream继承它,在构造时把缓冲区传给他的成员变量。

重写它的write方法,让它写入到传入的缓冲区。

public void write(int b) throws IOException {

       this.baout.write(b);// baout就是ByteArrayOutputStream

}

   3.5重写getWriter方法时发现PrintWriter可以new 并且需要传入一个输出字符流

正好可以将about转换成字符流发给他

new PrintWriter(new OutputStreamWriter(baout, "utf-8"));

但是没有必要每次调用getWriter时都要new一次,所以可以直接在myresponse构造方法中new

出来存入成员变量

   3.6再提供这成员变量ByteArrayOutputStream转换成数组后的get方法即可让调用者得到缓冲区

  byte[] bytes = this.baout.toByteArray();

       在get方法中需要关闭PrintWriter和baout流保证内容刷入缓冲区中

       为什么不关myOutputStream?因为在内部调用的是baout的write方法

   4.放行 将myresponse传入

   5.调用myresponse的getBuffer拿到缓冲区

   6.对缓冲区进行压缩

     ByteArrayOutputStream bout = new ByteArrayOutputStream();

GZIPOutputStream gout = new GZIPOutputStream(bout);

     gout.write(buffer);

     gout.close();

     byte[] bytes = bout.toByteArray();

   7.通知浏览器 内容是压缩的

     response.setHeader("content-encoding", "gzip");

response.setHeader("content-length", bytes.length+"");

     response.getOutputStream().write(bytes);

6. 跟踪用户上次访问时间

   1从cookies中拿到名为lastAccessTime的cookie,拿到值。

   2判断会话是否为新会话 因为如果是旧的就不给他打印时间了没必要每个页面都打印(具体需求)

     if(request.getSession().isNew()) 如果是第一次 lastAccessTime空 就输出欢迎你

     第二次就打印上次时间

   3将这次的时间放入cookie

   4将cookie设置入response并设置有效路径和有效时间

7. 统计站内各个页面的访问次数

  1在dofilter方法中 用request.getRequestURI获得请求的页面的uri

  2用request.getSession().getServletContext();拿到application域

  3以uri为key,计数器为value建map 将map存入application

  4放行

8. 实现某些资源只能被某些ip访问

   getRemoteAddr拿到访问者的ip 如果ip为特定IP 就打印一句话  否则放行

9. 实现防盗链功能

    针对所有的下载页面

   1同一下载url的命名或者

   2filter中request.getHeader("referer");拿到链接所在的网页地址

   3判断如果链接所在的不是webapp的子路径就直接跳转到首页

 

10.实现html标签转义、过滤敏感词汇 day23做的

12.强制缓存静态页面019/CacheFilter.java

   1判断一下访问的资源类型request.getRequestURI();

  

   2如果以.html .css .jpg等静态页面结尾 就读配置 看配置里要缓存多久 设置到time中

     如果不是 直接return

   3去掉禁止缓存消息头

response.setHeader("Cache-Control",null);

response.setHeader("Pragma",null);

   4.发缓存消息头

response.setDateHeader("Expires",System.currentTimeMillis() +Integer.parseInt(time)*60*60*1000);  

   5.放行

13.不让缓存非静态页面

   1直接发3个头 就不缓存了

     response.setDateHeader("Expires",-1);

response.setHeader("Cache-Control","no-cache");

response.setHeader("Pragma","no-cache");

2放行

14.cms自动生成静态页面day20/cms

   1一个jsp或者servlet访问多次会多次查数据库 为避免此现象 动态生成静态页面

   2在filter拿到请求,分析参数的id后猜测到将来生成html的web相对路径

   3根据web相对路径拿到这个html页面保存的绝对路径

   4根据绝对路径判断这个静态文件是否存在

   5如果静态文件不存在或者提交来的链接带刷新参数true则先建立这个文件目录 建立这个静态页面

   6再对response进行包装为myresponse 在包装类中 重写getWriter方法

因为getWriter的write写到的文件我们拿不到所以我们要自己new一个printWriter

让它写到指定的HTML的file,然后将这个printWriter返回,因为FlilWriter有乱码问题

所以用转换流

    pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8"));

   7所以构造myresponse时传入的参数有静态页面文件和response。除了getWriter以外的别的方法交给

父类实现

   8如果静态页面存在或者提交来的参数为false则直接请求转发到静态页面(其实是请求转发到defaultservlet)

   应用场景:一个jsp或者servlet访问多次会多次查数据库 为避免此现象 动态生成静态页面

             如果jsp发生更改,通常是先跳转到一个更改servlet完成数据库的更新。那么在

             此servlet可以访问以下这个filter所拦截的servlet即可向这个filter传参。

             String id = request.getParameter("id");

URL url = new URL("http://localhost/day20_cms/servlet/ListServlet?id=" + id +"&flush=true");

            InputStream in = url.openStream();

            这句话完成了对被拦截页面的访问。     

JavaEE(JavaWeb)——过滤器(Filter) Web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 Filter译为过滤器。 由于 Servlet 规范是开放的,借助于公众与开源社区的力量, Servlet 规范越来越科学,功能也越来越强大。 2000 年, Sun 公司在 Servlet2.3 规范中添加了 Filter 功能,并在 Servlet2.4 中对 Filter 进行了细节上的补充。 过滤器的作用: 一般用来完成通用操作,比如登录验证、统一编码设置、敏感字符过滤等 一、过滤器的运行原理 当. 阅读详情

相关推荐

过滤器实现get请求和POST请求的中文乱码问题

使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。

JavaWeb——过滤器

过滤器(Filter) 是J2EE Servlet模块下的组件Filter的作用是对URL进行统一的拦截处理Filter通常用于应用程序层面进行全局处理过滤流程 开发过滤器的三要素任何过滤器都要实现javax.servlet.Filter接口在Filter接口的doFilter()方法中编写过滤器的功能代码在web.xmI中对过滤器进行配置,说明拦截URL的范围 web.xml中的配置 过滤器的生命周期 构造器方法init 初始化方法第 1,2 步,在 web 工程启动的时候执行(Filt

路过Coder 1629

j2ee过滤器Filter使用详解(实例)

j2ee过滤器Filter使用详解(实例)

学习Java第70天,过滤器Filter简介

Filter,即过滤器,是JAVAEE技术规范之一,作用目标资源的请求进行过滤的一套技术规范,是Java Web项目中最为实用的技术之一Filter接口定义了过滤器的开发规范,所有的过滤器都要实现该接口Filter的工作位置是项目中所有目标资源之前,容器在创建HttpServletRequest和HttpServletResponse对象后,会先调用Filter的doFilter方法。

m0_74353846的博客 1121

资源描述框架RDF及Turtle

文章目录1. RDF1.1 简介1.2 格式1.3 RDF的要求2. Turtle2.1 语法2.1.1 简单三元组2.1.2 Turtle中的命名空间2.1.3 Base URI2.1.4 谓语列表2.1.5 宾语列表2.1.6 空白节点(bNodes)2.1.7 数据类型2.1.8 Class membership2.1.9 空URI2.1.10 集合 1. RDF 1.1 简介 RDF(Resource Description Framework)语义网的标准数据模型,是一个用于描述 Web 上的资

doublewhite233的博客 2493

STM32G030C8T6 ADC+DMA实战:同时采集外部电压和芯片温度的完整代码流程

本文详细介绍了STM32G030C8T6芯片通过ADC+DMA实现外部电压和芯片内部温度采集的完整流程。从硬件设计到CubeMX配置,再到驱动模块化实现与系统优化,提供了高精度多通道采集系统的实战指南,特别适合嵌入式开发者在工业控制和环境监测项目中应用。

weixin_42653691的博客 467

J2EE进阶之过滤器Filter 二十一

过滤器Filter一、过滤器是什么?有什么用?过滤器是什么?  过滤器是一个可以对请求相应进行拦截的程序。作用:  拦截一些信息,比如请求参数有相关不符合请求的。。。二、过滤器的编码步骤新建类,实现filter接口,会有三个为实现的方法,destroy,init,doFilter。在doFilter中编写逻辑。之后利用chain.doFilter(request,response)方法放行。 在x

Angus博客 1586

C#上位机与OneNET云平台数据交互实战——基于HTTP与JSON解析

本文详细介绍了使用C#开发上位机软件与OneNET物联网云平台进行数据交互的实战方法。通过构建HTTP请求、解析JSON数据,实现设备数据的实时获取、界面展示与本地存储,为工业监控与数据采集提供了一套完整高效的C#解决方案。

kkk56的博客 218

关于J2EE中过滤器的使用

关于J2EE中过滤器的使用  一个执行过滤器的Java 类必须实现javax.servlet.Filter 接口。这一接口含有三个方法: init(FilterConfig):这是容器所调用的初始化方法。它保证了在第一次 doFilter() 调用前由容器调用。它能获取在web.xml 文件中指定的filter初始化参数。  doFilter(ServletRequest,ServletRe

B10090120的专栏 2529

Python 映射函数map()详解

Python 映射函数map()详解

分享我的点点滴滴,在成长路上与你同行! 2139

WebDriverAgent 菜鸟解析篇

WebDriverAgent 是一个用于模拟移动设备浏览器的 Python 库,可以用来在 PC 上模拟移动设备的浏览器操作,从而进行自动化测试。下面是一个菜鸟对 WebDriverAgent 源码的解析篇,希望能对初学者有所帮助。

DJ355的博客 1222

JavaEE核心技术之Filter过滤器

JavaEE技术之Filter过滤器 概念 *生活中的过滤器:净水器,空气净化器... web中的过滤器:当访问服务器资源时,过滤器可以将请求拦下来, 完成一些特殊的功能 过滤器的作用: 一般用于完成通过的操作。如:登录验证,统一编码处理,敏感字符过滤... 快速入门: 步骤: 1. 定义一个类,实现接口Filter 2. 复写方法 3. 配置拦截路径 代码 @WebFilter("/*") //访问所有的资源之前,都会执行该过滤器 public class Filt

qq_43370892的博客 684

ADP在线自适应动态规划之持续激励条件

在线自适应动态规划之持续激励条件 在在线自适应动态规划算法中,需要通过满足持续激励条件(Persistent Excitation Condition)保证critic网络权值的收敛性,一般的做法都是在算法初期在输入端引入探测噪声(Probing Noises)来保证数据的丰富性,但是由于在输入端引入噪声会给系统带来一些不好的影响,甚至可能破坏系统的稳定性。因此,出现了一些其他的方法来避免引入探测噪声,受阅读所限,我目前了解两种: Concurrent Learning(CL) Experience Re

qq_43435956的博客 6161

JavaEE复习回顾十: 过滤器Filter

目录 一、过滤器Filter 1.1、filter的简介 1.2、快速入门 1.3、Filter的API 1.3.1、filter生命周期及其与生命周期相关的方法 1.3.2、Filter的AP详解 1.4、Filter的配置 一、过滤器Filter 1.1、filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进...

十里の清风 324

EtherCAT应用层协议选型指南:CoE、SoE、EoE、FoE、AoE到底怎么选?看完这篇就懂了

本文深入解析EtherCAT应用层协议(CoE、SoE、EoE、FoE、AoE)的选型策略,从实时性、数据吞吐量和功能完整性三大核心指标出发,提供工业场景下的实战决策框架。通过技术特性对比、混合协议架构设计和常见故障规避指南,帮助工程师优化自动化设备通信性能。

weixin_28718793的博客 490

Python 爬虫实战:爬取万方数据文献信息

本文介绍了基于Python爬虫技术合规获取万方数据文献信息的方法。通过分析万方数据的请求机制与反爬策略,采用requests库结合Session维持合法会话,实现了文献标题、摘要、作者等核心元数据的提取。文章详细讲解了Token验证、动态请求构造、JSON数据解析等关键技术,并提供了完整可运行代码。同时强调严格遵守《万方数据知识服务平台用户协议》,控制请求频率,仅限学术研究使用。该方案为万方数据文献信息获取提供了标准化解决方案,支持数据清洗、结构化存储及后续分析应用。

2503_91057718的博客 2134

什么是JavaEE的Filter过滤器?

Filter可对请求进行处理,比如修改请求头、参数等,然后决定是否将请求继续传递给下一个Filter或目标资源。响应时,数据会从目标资源反向经过Filter,Filter可对响应进行处理,如修改响应内容、添加响应头等,最后返回给客户端。- 日志记录与监控:记录请求和响应的相关信息,如请求路径、参数、响应状态码等,用于系统的日志分析和监控,帮助排查问题和了解系统运行情况。- 数据处理与转换:对请求或响应中的数据进行处理和转换,如统一字符编码,确保不同系统间数据传输的正确性和一致性。

2302_79932868的博客 499

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

J2EE三大组件——Filter过滤器

Filter过滤器的生命周期为:init——>doFilter——>destory;这三个也是实现Filter需要重写的方法; Filter过滤器 接受用户的请求,过滤并设置用户的请求 implements Filter /*过滤所有 包括视图jsp、html、css、js,动作admin、update、query Filter程序同servlet一样,需要在web.xml文件中进行注册和设置拦截目标。拦截目标可以使web服务器管理的所有web资源:Jsp,Servlet,静态图片或静态htm

weixin_44008655的博客 424

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

javaEE Filter, 过滤器

编写步骤:1)编写一个过滤器的类实现Filter接口2)实现接口中尚未实现的方法 (着重实现doFilter方法)3)在web.xml中进行配置 (主要是配置要对哪些资源进行过滤)Filter的主要作用:1)公共代码的提取2)可以对request和response中的方法进行增强(装饰者模式/动态代理)3)进行权限控制MyFilter(过滤器,实现Filter接口):package com.xxx...

houyanhua1的专栏 351

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

j2ee过滤器filter

定义:在对项目中的资源发起请求时,可以通过配置的过滤规则,对指定的资源请求进行拦截,执行完过滤器中的逻辑之后,再根据 写法:①实现Filter接口,②实现init,doFilter,destroy方法,③在web.xml中配置过滤器 //配置文档方式↓ &lt;filter&gt; &lt;filter-name&gt;Filter&lt;/filter-name&gt; &lt;fi...

随笔_博客 244

JavaEE--监听器(Linstner)&&过滤器(filter)

JavaEE–监听器(linstner) 监听器的作用 如何编写监听器程序 JavaEE–过滤器(filter) 如何配置过滤器 如何使用过滤器 过滤器介绍 过滤器是一个用于拦截在数据源和数据目的地之间消息的一个对象(注意,不管是请求还是响应都需要过滤) 过滤器功能 1.分析请求,将请求发送给指定的资源或自己创建一个响应返回 2.在请求到达服务器端前处理请求,设置请求信息,将请求...

lkfmiaomiao的博客 430

JavaEE--Filter过滤器的使用

FilterConfig 与ServletConfig很相似。 获取方式通过init方法,因为init方法的参数就是FilterConfig对象。 通过String getInitParameter(String name)方法能够得到xml配置文件中的初始化参数。 通过在Filter中设置request的属性(如编码方式),能够为后续所有servlet设置该属性。 &lt;filter&gt...

gaishi_hero的博客 460

JavaEE--过滤器Filter

一、过滤器Filter 1.filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目    标资源访问前后进行逻辑处理     2.快速入门 步骤: 编写一个过滤器的类实现Filter接口 实现接口中尚未实现的方法(着重实现doFilter方法) 在web.xml中进行配置(主要是配置要对哪些资源进行过滤)       3.Fi...

weixin_40657079的博客 359

JavaEE基础之- 过滤器和监听器Filter and Listener

Ø Filter的三个方法:ü void init(FilterConfig):在Tomcat启动时被调用;ü void destroy():在Tomcat关闭时被调用;ü void doFilter(ServletRequest,ServletResponse,FilterChain):每次有请求时都调用该方法;Ø FilterConfig类:与ServletConfig相似,用来获取Filter的初始化参数。

m0_75163045的博客 1806

filter过滤器_10.《JavaEE 学习笔记》filter过滤器

参考链接:《Oracle Java EE编程指南》12-02:Filter相关的API​blog.youkuaiyun.com1、概念过滤器(filter)是一种代码重用的技术,它可以改变HTTP请求的内容,响应,及Header信息。过滤器通常不产生响应或像Servlet那样对请求作出响应,而是修改或调整到资源的请求,以及来自资源的响应。过滤器可以作用于所有Web资源,即动态或静态内容。过滤器是指拦截请求,并...

weixin_39879881的博客 183

J2EE中过滤器:Filter

1,概念 Filter 技术是servlet 2.3 新增加的功能。它使用户在request到达目标Servlet之前截获request并对其预处理,同时对Servlet返回的response在离开服务器前对resposne进行处理。需要注意的是Filter可以不止一个,可以根据在web.xml中声明的顺序多次过滤,所以也称Filter技术为FilterChain(过滤器链)技术,这点与Hado

学习空间 1746
上一篇: servlet中的文件上传
下一篇: javamail的使用
bart2011
博客等级 码龄16年 10粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值