Servlet中的过滤器Filter详解

JavaWeb的Servlet,Filter过滤器 一、学习目标 1、Filter过滤器 2、Filter映射 3、Filter链 二、重要知识 为了获取Filter程序在web.xml文件中的配置信息,Servlet API提供了一个FilterConfig接口,该接口封装了Filter程序在web.xml中的所有注册信息,并且提供了一系列获取这些配置信息的方法 。 1、Filter过滤器 Filter被称作为过滤器,其基本功能就是对Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能。这好比我们生活中所用到的净水器一样 阅读详情

web.xml中元素执行的顺序listener->filter->struts拦截器->servlet。

1.过滤器的概念

Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。

优点:过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.doFilter()就不会再执行后面的过滤器和请求的内容。而在实际使用时,就要特别注意过滤链的执行顺序问题

2.过滤器的作用描述

  • 在HttpServletRequest 到达Servlet 之前,拦截客户的HttpServletRequest 。 
  •   根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。 
  •   在HttpServletResponse 到达客户端之前,拦截HttpServletResponse 。 
  • 根据需要检查HttpServletResponse ,可以修改HttpServletResponse 头和数据。

4.Filter接口

1.如何驱动

在 web 应用程序启动时,web 服务器将根据 web.xml 文件中的配置信息来创建每个注册的 Filter 实例对象,并将其保存在服务器的内存中

2.方法介绍

    • init()  Init 方法在 Filter 生命周期中仅执行一次,web 容器在调用 init 方法时
    • destory()  在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。
    • doFilter() Filter 链的执行 

5.FilterChain接口

1.如何实例化

代表当前 Filter 链的对象。由容器实现,容器将其实例作为参数传入过滤器对象的doFilter()方法中

2.作用

调用过滤器链中的下一个过滤器

filter实例:

web.xml配置

[html]  view plain copy
  1. <!-- 编码过滤器 -->  
  2.     <filter>  
  3.         <filter-name>setCharacterEncoding</filter-name>  
  4.         <filter-class>com.company.strutstudy.web.servletstudy.filter.EncodingFilter</filter-class>  
  5.         <init-param>  
  6.             <param-name>encoding</param-name>  
  7.             <param-value>utf-8</param-value>  
  8.         </init-param>  
  9.     </filter>  
  10.     <filter-mapping>  
  11.         <filter-name>setCharacterEncoding</filter-name>  
  12.         <url-pattern>/*</url-pattern>  
  13.     </filter-mapping>  
  14.    
  15. <!-- 请求url日志记录过滤器 -->  
  16.     <filter>  
  17.         <filter-name>logfilter</filter-name>  
  18.         <filter-class>com.company.strutstudy.web.servletstudy.filter.LogFilter</filter-class>  
  19.     </filter>  
  20.     <filter-mapping>  
  21.         <filter-name>logfilter</filter-name>  
  22.         <url-pattern>/*</url-patte
Servlet之Filter过滤器的基本理解 Filter过滤器 Filter和Servlet一样,本质上也是一个接口,javax.servlet.Filter接口。 当客户端访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 过滤器一般用于完成通用的操作,比如多个资源具有共同的一个操作,可以抽取出来放到过滤器中。比如,登陆验证/统一编码处理/敏感字符过滤等等。 使用步骤: 1,定义一个类,实现Filter接口 2... 阅读详情

相关推荐

Struts框架基础包

Struts框架基础包 必须包括这些包才能开发

Java三大器之过滤器(Filter)的工作原理和代码演示

一、Filter简介   Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等 一些高级功能。   Servlet API中提供了

reggergdsg的博客 10万+

java8新特性_day04_(Stream,过滤器,常用API)

该文件中包括java8学习的第四天内容,前面三天内容在以博客形式发布

使用过滤器解决全栈乱码问题

1、编写过滤器 package com.gxa.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class CharacterEncodingFilter implements Filter { //获取接收初始化参数的变

qq_43163943的博客 272

struts框架搭建

struts2配置说明,java web 工程搭建 struts2框架

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程

本人有Unity基础,刚学UE几天,把这一套处理流程记录一下备用。

qq_42915442的博客 9815

web.xml中配置CharacterEncodingFilter编码过滤器的原理

在web.xml文件中,我们经常可以看到配置的统一编码过滤器,他继承了OncePerRequestFilter,而OncePerRequestFilter继承自GenericFilterBean,GenericFilterBean实现了filter,因此可见CharacterEncodingFilter具有filter的所有特性;即实现拦截请求的功能,在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。 根据需要检查HttpServletRe

wnq1007的博客 1856

threejs开发可视化数字城市效果

theme: condensed-night-purple 灵感图 现在随着城市的发展,越来越多的智慧摄像头,都被互联网公司布到城市的各个角落,举一个例子,一个大楼上上下下都被布置了智能摄像头,用于监控火势,人员进出,工装工牌佩戴等监控,这时候为了美化项目,大公司都会将城市的区域作为对象,进行3d可视化交互,接下来的内容,就是基于以上元素,开发的一款城市数据可视化的demo,包含楼宇特...

weixin_41770018的博客 1579

详解Spring中的CharacterEncodingFilter过滤器,过滤url请求

转自:http://dongruan00.iteye.com/blog/1773017  在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodingFilter 1.看清结构:     可以看到其继承GenericFi

eagle199012的专栏 4439

SAP生产订单成本‘还原’实战:从标准成本到实际费用,一步步拆解差异来源(附物料分类账提示)

本文深入解析SAP生产订单成本差异分析的全过程,从标准成本到实际费用的追踪方法,揭示差异根源的六维分析法。特别强调物料分类账(CKMLCP)在成本还原中的关键作用,帮助财务人员精准定位价格差异、用量差异等问题,提升制造业成本管理的效率和准确性。

weixin_28705087的博客 531

PHP版本对接支付宝支付接口 电脑网站 详细介绍 沙箱环境 超简单易懂

PHP版本对接支付宝支付接口 其实理顺了思路后,按照我接下来的步骤来,真的超级简单啊,为啥有那么多的朋友们折腾了那么久呢,嘿嘿,跟我走吧~ 我是昨天晚上洗完澡之后,大概八九点,才开始正式开工尝试去这一工程的,我去支付宝的蚂蚁金服开放平台里把各个知识点和文档大概都看了一遍,大致弄明白了要怎么操作了,建议大家看看电脑网站开发文档,忙到了夜里十二点左右,成功地用支付宝给的Demo完成了付款操...

爱玲姐姐的博客 1万+

Java Servlet中Filter过滤器的原理以及使用方式

详细介绍了Java Web Servlet中的Filter过滤器的原理以及常见用法。

终生学习践行者 3810

微信小程序 - 最新图片组拖拽排序更换位置功能,类似微信朋友圈九宫格图片的拖动排序效果,微信小程序实现九宫格图片拖拽调换位置,小程序详细实现图像拖曳拖动切换位置排序功能(详细示例代码,一键复制开箱即用

微信小程序,wechat,小程序,图片排序,图像排序,九宫格拖拽排序,拖曳,拖动,拖拽,仿微信朋友圈,朋友圈宫格图片排序,微信朋友圈图片拖动排序效果,实现九宫格图片拖拽,图像拖拽排序组件插件,小程序实现拖拽图片切换图片位置,图片拖动互换位置,图像拖拽切换位置,九宫格图片组合拖动排序,交换九宫格图片的位置,小程序上传图片后,如何实现拖拽排序功能,小程序怎么实现图片拖拽排序,微信小程序图片上传,九宫格拖拽组件,选择图片并拖动_微信小程序图片拖拽,微信小程序长按拖拽排序,图像的拖拽移动,多图拖拽排序功能,实现九宫

✅ 精选推荐文章 4452

servlet中Filter过滤器源码解析

servlet中Filter过滤器源码解析 文章目录servlet中Filter过滤器源码解析一、简介二、Filter过滤器2.1 核心类2.1.1 Filter接口2.1.2 FilterConfig2.1.3 FilterChain2.2 注册三、示例 一、简介 在servlet开发中,对于请求的拦截,常使用filter过滤器,这里结合源码对Filter过滤器进行介绍。 二、Filter过滤器...

panda-star的博客 1728

【错误解决】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215 本文源自【大学之旅_谙忆的博客】 在启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。mysql 版本 5.7.14 系统 win 7后来经过一系列的百度,谷歌,总算是解决了。首先,你需要把原来的服务删除:mysqld --remove mysq

谙忆-陈浩翔 12万+

[Python图像处理] 一.图像处理基础知识及OpenCV入门函数

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分割窗...

杨秀璋的专栏 7万+

Servlet中的过滤器Filter用法

1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。 优点:过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.doFilter()就不会再执行后面的过滤器...

diaohuyi6830的博客 290

详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

   本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示。    一、 A*算法简介       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。      公式表示为: f(n)=g(n)+h(n),其中, f(n) 是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n) 是从状态n到目标状态的最佳路径的估计代价。

慕羽★的博客 7万+

Javaweb核心之servlet规范过滤器-----Filter

Javaweb核心之servlet规范过滤器-----Filter

楠黎倾风的博客 1万+

android 蓝牙通讯demo

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

servlet过滤器Filter入门

分类: 计总会 | 标签: servlet, 基础知识, 学习, 摘录 servlet API中最重要的一个功能就是能够为servlet和JSP页面定义过滤器。过滤器提供了某些早期服务器所支持的非标准“servlet链接”的一种功能强大且标准的替代品。                                                                    

murongqiuye的专栏 1387

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Servlet程序 Filter过滤器 图解

06 Servlet Servlet与jsp是等价的。 1、Servlet是JavaEE规范之一。规范就是接口 2、Servlet就JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。 3、Servlet是运行在服务器上的一个java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。 Servlet可以连接java代码与前端代码Html之间,架成桥梁传输数据。jsp就是HTML与java代码的整合,既可以写后端代码也可以写前端代码所以并没有实

皮皮亮的博客 1508

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Servlet之Filter过滤器1

Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、自动登录、压缩响应信息等一些高级功能。 Servlet API中提供了一个Filter接口,开发web应用

天马行空的专栏 1392

Servlet中过滤器Filter的使用

Servlet中过滤器Filter的使用 1.Filter过滤器简介 在Servlet中,有时我们需要Filter来进行对信息的过滤,比如在一个管理系统中,我们可以设置过滤器来过滤没有登录的用户访问主页以提高系统的安全性。 2.过滤器的优点: 过滤器是可插拔的,我们不需要某个过滤器时,直接删掉不会影响程序的运行。 一个过滤器不依赖于另一个资源 维护少,容易维护 3.过滤器的创建 要创建一个过...

GzxNgu的博客 7972

java servlet的过滤器 Filter

java servlet的过滤器 Filter 在tomcat10之前,需要处理乱码问题就需要使用到过滤器,过滤乱码 在处理自己的业务时,都需要判断用户有没有登录,登录了才可以继续操作!这段判断用户是否登录的代码时固定的,每一个servlet类都需要编写,并没有达到复用。 可以使用servlet规范中的Filter过滤器来解决问题 原理 作用 Filter可以在Servlet这个目标程序执行之前添加代码,也可以在目标servlet代码之后添加代码,都可以添加过滤规则 一般情况下都是在过滤器中编写公共代

yuluo的博客 1234

Servlet 过滤器( Filter )

Servlet 过滤器( Filter ) 原理图: 过滤器的使用场景 登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换 过滤器的优势 便于代码重用,不必每个servlet中还要进行相应的操作 配置方式 web配置方式 <!--过滤器的xml配置 --> <filter> <!--名称--> <filter...

bggl的博客 1355
上一篇: servlet load-on-startup的作用
下一篇: struts2—使用通配符
andyLiuJava
博客等级 码龄14年 0粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值