JAVA WEB学习笔记-Servlet过滤器

SERVLET过滤器 全球因特网用户使用不同类型的Web浏览器访问应用服务器上存储的Web应用程序。每个浏览器根据对应的Web浏览器窗口中的设置显示应用程序中的信息。Web应用程序可能会有一些客户机的Web浏览器不支持的HTML标记或功能。这种情况下,应用程序在客户机的Web浏览器中可能运行,可能不运行,还可能生成不需要的输出。为了避免这种问题,在调用servlet之前需要识别浏览器的类型和向Web应用程序发送请求的客户机和其他特定的信息。 阅读详情

http://blog.youkuaiyun.com/pengpenglin/

一、Servlet过滤器的概念:
***************************************************************************************
Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。   

Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤作用。Servlet过期能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。

Servlet过期负责过滤的Web组件可以是Servlet、JSP或者HTML文件。 
***************************************************************************************


二、Servlet过滤器的特点:
***************************************************************************************
A.Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象
B.Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器
C.Servlet过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象
***************************************************************************************


三、Servlet过滤器的作用:
***************************************************************************************
A.查询请求并作出相应的行动。
B.阻塞请求-响应对,使其不能进一步传递。
C.修改请求的头部和数据。用户可以提供自定义的请求。
D.修改响应的头部和数据。用户可以通过提供定制的响应版本实现。
E.与外部资源进行交互。

***************************************************************************************


四、Servlet过滤器的适用场合:
***************************************************************************************
A.认证过滤
B.登录和审核过滤
C.图像转换过滤 
D.数据压缩过滤 
E.加密过滤 
F.令牌过滤 
G.资源访问触发事件过滤 
H.XSL/T过滤 
I.Mime-type过滤
***************************************************************************************


五、Servlet过滤器接口的构成:
***************************************************************************************
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:

A.init(FilterConfig):
这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数

B.doFilter(ServletRequest,ServletResponse,FilterChain):
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器

B.destroy():
Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源
***************************************************************************************


六、Servlet过滤器的创建步骤:
***************************************************************************************
A.实现javax.servlet.Filter接口
B.实现init方法,读取过滤器的初始化函数
C.实现doFilter方法,完成对请求或过滤的响应
D.调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应
E.销毁过滤器
***************************************************************************************


七、Servlet过滤器对请求的过滤:
***************************************************************************************
A.Servlet容器创建一个过滤器实例
B.过滤器实例调用init方法,读取过滤器的初始化参数
C.过滤器实例调用doFilter方法,根据初始化参数的值判断该请求是否合法
D.如果该请求不合法则阻塞该请求
E.如果该请求合法则调用chain.doFilter方法将该请求向后续传递
***************************************************************************************


八、Servlet过滤器对响应的过滤:
***************************************************************************************
A.过滤器截获客户端的请求
B.重新封装ServletResponse,在封装后的ServletResponse中提供用户自定义的输出流
C.将请求向后续传递
D.Web组件产生响应
E.从封装后的ServletResponse中获取用户自定义的输出流
F.将响应内容通过用户自定义的输出流写入到缓冲流中
G.在缓冲流中修改响应的内容后清空缓冲流,输出响应内容
***************************************************************************************

九、Servlet过滤器的发布:
***************************************************************************************
A.发布Servlet过滤器时,必须在web.xml文件中加入<filter>元素和<filter-mapping>元素。

B.<filter>元素用来定义一个过滤器:
属性                   含义
filter-name    指定过滤器的名字
filter-class    指定过滤器的类名
init-param    为过滤器实例提供初始化参数,可以有多个

C.<filter-mapping>元素用于将过滤器和URL关联:
属性                     含义
filter-name    指定过滤器的名字
url-pattern    指定和过滤器关联的URL,为”/*”表示所有URL
***************************************************************************************


十一、Servlet过滤器使用的注意事项
***************************************************************************************
A.由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到的请求、响应对象ServletRequest、ServletResponse在使用前都必须先转换成HttpServletRequest、HttpServletResponse再进行下一步操作。

B.在web.xml中配置Servlet和Servlet过滤器,应该先声明过滤器元素,再声明Servlet元素


C.如果要在Servlet中观察过滤器生成的日志,应该确保在server.xml的localhost对应的<host>元素中配置如下<logger>元素:
<Logger className = “org.apache.catalina.logger.FileLogger”
directory = “logs”prefix = “localhost_log.”suffix=”.txt”
timestamp = “true”/>
***************************************************************************************
Java Servlet过滤器深入解析与应用 在Java Web开发中,Servlet过滤器(Filter)是介于客户端和Servlet之间的一道门槛,用来执行拦截客户端请求和服务器响应的代码片段。它是实现请求预处理和后处理的重要工具,能够对进入Servlet容器的请求和从Servlet容器发出的响应进行统一的处理。 阅读详情

相关推荐

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码)

本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。

gin88的博客 261

servlet-filter(过滤器)

是。

CUITAO2305532402的博客 3878

从零到一:AVL Cruise与Matlab联合仿真DLL配置的避坑指南

本文详细介绍了AVL Cruise与Matlab联合仿真DLL配置的全流程,包括编译器选择、环境变量设置、DLL编译与模型导出等关键步骤。针对常见问题如版本匹配、路径错误等提供了实用解决方案,帮助工程师高效实现控制策略与整车性能仿真的无缝对接。

weixin_29054399的博客 566

JAVA WEB学习笔记(四)-Servlet过滤器

一、Servlet过滤器的概念:***************************************************************************************Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。   Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤

pengpenglin的专栏 2662

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2795

Linux Component概述和高通component的使用

为了让subsystem按照一定顺序初始化设备才提出来的。subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video device),这时就要用到component框架。例如v4l2 subdev和v4l2 video device中,谁依赖谁先创建?

lz_1990的专栏 1608

servlet总结(5)——过滤器与监听器

1.过滤器 1.1 什么是过滤器? Servlet规范当中定义的一种特殊的组件,用来拦截servlet容器的调用过程。容器收到请求之后,会先调用过滤器,再调用后续的其它组件。 1.2 如何写一个过滤器? step1.写一个java类,实现Filter接口。 step2.在接口方法当中,实现拦截处理逻辑。 step3.配置过滤器(web.xml)。 1.3 过滤器优先级 当有多个过滤...

业精于勤,荒于嬉 295

OpenClaw Docker 安装问题解决全记录

控制面板无法加载(WebSocket 错误) | 确认 Nginx 配置中的 `Upgrade` 和 `Connection` 头正确 || 网关容器无法启动 | `docker compose logs openclaw-gateway`,检查权限、镜像名 |如需消除,使用 Let's Encrypt |- `<your-token>`:你的 OpenClaw 网关令牌(如 `b0e5ab...`)将 `<nas-ip>` 替换为你的群晖内网 IP(例如 `192.168.1.100`)。

u014490376的博客 2308

Filter及FilterChain的使用详解

一、Filter的介绍及使用 什么是过滤器? 与Servlet相似,过滤器是一些web应用程序组件,可以绑定到一个web应用程序中。但是与其他web应用程序组件不同的是,过滤器是"链"在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息。这种访问使得过滤器可以检查并修改请求和响应的内容。 过滤器适用于那些地方?

Work notes 1220

精确时钟同步协议ptp/IEEE-1588v2协议-------(1)简介

ptp, 1588V2, IEEE-1588, 精确时钟同步协议

meihualing的专栏 5352

操作系统实验一到实验九合集(哈工大李治军)

操作系统实验一到实验九合集(哈工大李治军) 有详细代码及注释,程序已在本地测试,均能跑通

leoabcd12的博客 5万+

Servlet——过滤器(fiter)

什么是过滤器? 过滤器是Servlet的一个组件,是设计模式中过滤器模式(又叫责任链模式)的一种经典实现 是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能————来自某一技术大牛 作用原理如下: 由此可见,过滤器对于每一个WEB开发人员来说都是一项不容错过

qq_52530620的博客 7230

【100分- 求最多可以派出多少支团队】(题目+思路+Java&C++&Python解析+在线测试)

用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。

m0_73659489的博客 313

【学习笔记】| Java Web

1、基本概念 1.1、前言 web开发: web,网页的意思 , www.baidu.com 静态web html,css 提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站; 提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同! 技术栈:Servlet/JSP,ASP,PHP 在Java中,动态web资源开发的技术统称为JavaWeb; 1.2、web应用程序 web应用程序:可以提供浏览器访问的程序; a.html、b.htm

单词沙漠的博客 379

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

servlet相关知识总结

比较好的博客地址: 1.Servlet学习笔记(八):过滤器Filter详解 2.Servlet学习笔记(九):监听器Listener详解

jamie_byr 315

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

servlet过滤器原理及使用

原理 首先了解什么是过滤器,各种文章已经写的很清楚了 引用来自这篇大牛的博客 是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能 提取关键字 ...

tianchaixiaoniuniu的博客 7272

servlet过滤器 实例_Java Servlet过滤器示例教程

servlet过滤器 实例Java Servlet Filter is used to intercept the client request and do some pre-processing. It can also intercept the response and do post-processing before sending to the client in web appli...

从零开始的教程世界 532

Servlet过滤器web.xml文件配置

1、 : 定义过滤器的名称,声明过滤器实现类和 init() 参数。     : 指定过滤器的名字;    : 指定过滤器类的类名,包括类的路径;    : 为过滤器实例提供初始化参数,可以有多个;    filter><!-- 声明过滤器实现类和初始化参数 -->         filter-name>Filter1filter-name><!-- 过滤器名 -->

study~ share~ mark~ 1万+

Java web—Servlet过滤器(Filter)

前言: 过滤器是Servlet中一个非常重要的组成部分,进行WEB开发时无不用到过滤器;因此这篇blog来单独总结下关于过滤器的知识点。

未完成的歌~的博客 748

Servlet 过滤器

Servlet 过滤器是 Java Web 应用程序中非常重要的组件,它可以对请求和响应进行拦截和处理。本文将详细介绍 Servlet 过滤器的概念、工作原理、使用场景及实现方式。

m0_73941339的博客 680

Servlet中配置和使用过滤器

过滤器是一个接口,允许我们在请求和响应链中对请求进行处理或者修改响应。过滤器可以在请求到达 Servlet 前、响应返回客户端前对请求和响应进行处理。过滤器本身不能直接处理请求和响应,而是通过doFilter()方法来传递请求和响应对象。通过这个方法,过滤器可以对请求和响应做修改或在请求/响应链中传递给下一个过滤器或者 Servlet。过滤器是 Servlet 技术中非常强大的功能之一。

小蜗牛的珍贵百宝箱 1691

java web servlet 过滤器_javaWeb中servlet开发——过滤器

servlet开发——过滤器(filter)servlet有三种,分为简单servlet、过滤器servlet、监听servlet简单servlet是作为一种程序所必须的开发结构保存的,继承httpServlet类形式。过滤器servlet和监听servlet不是程序所必须的。要想完成一个过滤器的开发,首先必须让一个类实现Filter接口,此接口是javax.serclet中的。根据这个包的特点可...

weixin_33357508的博客 203

Java Servlet Filter实现Web页面执行时间过滤器

 以下是本人在项目中用Servlet Filter实现的Web页面执行时间过滤器:package com.sunfairs.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterCo

独行者的专栏 2061

Servlet3.0过滤器

注解 Servlet3.0过滤器        Servlet3.0里面的过滤器跟以前版本的一样,还是需要实现javax.servlet.Filter接口。Filter接口中定义了三个方法,init(FilterConfig filterConfig)、destroy()和doFilter(HttpRequest request, HttpServletResponse response, Fil

Elim的博客 6282

JAVA WEB中的Servlet过滤器

实现一个Servlet过滤器,可以对用户登录情况进行控制。要求如下: 1)访问路径是admin下的资源,需要登录,如果用户没有登录,自动转向用户登录页面。用户登录成功后,再次访问admin下的资源不需要登录。 2)访问其他路径下的资源,不需要登录,可直接访问。 3)必须使用Servlet过滤器实现该功能。 工具:eclipse、tomcat 过程如下: 一、制作登录界面,其中包含用户名以...

weixin_30417487的博客 141
上一篇: JAVA WEB学习笔记-Cookie和Session专题
下一篇: TOMCAT源码分析(启动框架)
soleghost
博客等级 码龄24年 23粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值