您现在的位置是:IT资讯 >>正文
浅析Servlet过滤器
IT资讯8327人已围观
简介本文转载自微信公众号「码工是小希」,作者码工是小希。转载本文请联系码工是小希公众号。1 定义Servlet过滤器和 Servlet 很类似,注意的是它有拦截客户端请求的用法,Servlet过滤器可以改 ...
本文转载自微信公众号「码工是浅析小希」,作者码工是滤器小希 。转载本文请联系码工是浅析小希公众号。
1 定义
Servlet过滤器和 Servlet 很类似,滤器注意的浅析是它有拦截客户端请求的用法,Servlet过滤器可以改变请求中的滤器内容,满足实际开发的浅析需要。
开发来讲,滤器过滤器实质上是云计算浅析在Web应用服务器里面的一个Web组件 ,目的滤器用在拦截客户端(浏览器)与目标资源的请求,并把这些请求进行一定过滤处理发给目标资源:

从图看出,浅析Web容器部署过滤器后,滤器不仅客户端发送的浅析请求会经过过滤器的处理,要不要返回呢?滤器是的,请求的浅析回应信息也同样要经过过滤器 。
如果一个Web应用中使用一个过滤器不能解决实际的免费模板业务需求,那可以部署多个过滤器对业务请求多次处理 ,这样做就组成一个过滤器链 ,Web容器在处理过滤器时,将被过滤器的先后顺序对请求进行处理 :

Web服务器中部署过滤器链 ,那请求会一次按照过滤器顺序进行处理 ,在第一个过滤器处理一请求后 ,会传递给第二个过滤器进行处理 ,依次类推 ,传递到最后一个过滤器为止 ,再将请求交给目标资源进行处理,目标资源在处理经过过滤的请求后 ,其回应信息再从最后一个过滤器依次传递到第一个过滤器,最后传送到客户端;
2 过滤器核心对象
过滤器对象放在 javax.servlet 包中 ,服务器租用叫做 Filter, 是个接口 ,与过滤器相关的对象还有 FilterConfig对象 与 FilterChain对象,这两个也同样是接口对象 ,位于 javax.servlet 包中,分别作为过滤器的配置对象与过滤器的传递工具。在实际开发 ,定义过滤器对象只需要直接或间接地实现 Filter接口即可。下图的MyFilter1过滤器与MyFilter2过滤器 ,而 FilterConfig对象 与 FilterChain对象 用在过滤器的相关操作 :

Filter接口
每个过滤器对象只直接或间接地实现 Filter接口,亿华云在Filter接口中定义了3个方法,分别是 init(),doFilter()和destroy() ,说明如表:
方法 声明 public void init(FilterConfig filterConfig) throws ServletException 过滤器初始化方法,该方法在过滤器初始化时调用 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 对请求进行过滤处理 public void destroy() 销毁方法,以便释放资源FilterConfig接口
它是Servlet容器进行实现,主要是获取过滤器中的配置信息 ,其方明及说明如表:
方法 说明 public String getFilterName() 用于获取过滤器的名字 public ServletContext getServletContext() 获取Servlet上下文 public String getInitParameter(String name) 获取过滤器的初始化参数值 public Enumeration getInitParameterNames() 获取过滤器的所有初始化参数FilterChain接口
它由Servlet容器进行实现 ,在这个接口中一个方法,建站模板其方法声明:public void doFilter(ServletRequest request, ServletResponse response)throws IOException,ServletException 该方法将过滤的请求传给下一个过滤器 ,如果此过滤器已经是过滤器链中的最后一个过滤器,那么 ,请求传给目标资源 。
过滤器创建于配置
创建一个过滤器对象需要实现 javax.serjavax.servlet.Filter接口,下面演示过滤器的创建 :
创建名称为 MyFilter的过滤器对象 :
复制import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servletFilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * 过滤器 */ public class MyFilter implements Filter{ //初始化方法 public void init(FilterConfig fConfig) throws ServletException{ //初始化处理 } //过滤处理方法 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletEXception { //过滤处理 chain.doFilter(request, response); } //销毁方法 public void destroy(){ //释放资源 } }过滤器的init()对过滤器的初始化进行处理 ,destroy()是过滤器的销毁方法,高防服务器主要是释放资源,对于过滤器处理的业务需要编写到doFilter()里面,在请求过滤要调用chain参数的doFilter()把请求向下传给下一过滤器或目标资源 :
使用过滤器并不一定要将请求向下传递到下一过滤器或目标资源,如果业务逻辑需要,也可以在过滤处理后,直接回应客户端;
过滤器与Servlet也十分相似 ,在创建后同样对其配置,过滤器的配置主要分为两个步骤 ,分别是声明过滤器对象和创建过滤器映射 ,创建叫MyFilter的过滤器对象:
复制<!- 过滤器声明 -> <filter> <!- 过滤器的名称 -> <filter-name>MyFilter</filter-name> <!- 过滤器的完整类名 -> <filter-class>com.lyq.Myilter</filter-class> </filter> <!- 过滤器映射 -> <filter-mapping> <!- 过滤器名称 -> <filter-name>MyFilter</filter-name> <!-- 过滤器 URL映射 -> <url-pattern>/MyFilter</filter-name> <!- 过滤器URL映射 -> <url-pattern>/MyFilter</url-pattern> </filter-mapping>Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“信息技术视野”。http://www.bziz.cn/html/697d399299.html
上一篇:排名前十的UEBA企业用例
下一篇:网络安全中不可忽视的进攻性安全
相关文章
网络安全从业人员必知的云原生安全
IT资讯什么是云原生?“云原生”Cloud Native)是指一种专门为云环境设计的应用开发模式。云原生的核心理念是将应用程序设计为微服务架构,通过容器化技术进行封装,并利用云基础设施的弹性、可伸缩性、自动化 ...
【IT资讯】
阅读更多win10修复引导工具怎么用
IT资讯Win10系统怎么修复系统引导文件?引导区修复命令是什么?这些问题是不是一脸茫然,没事,今天小编整理了相关的问题,下面跟我一起来看看吧。win10修复引导工具怎么用步骤引导修复的命令是:1)检查引导是 ...
【IT资讯】
阅读更多win10怎么显示隐藏文件夹
IT资讯在使用win10系统的时候,其实有很多的文件夹等都被隐藏起来了,但是很多的用户们都不知道这些文件夹要怎么样才能够去查看到,那就快来看看详细的显示方法吧~win10怎么显示隐藏文件夹:1、首先随便打开一 ...
【IT资讯】
阅读更多
热门文章
友情链接
- 红米Note2的拍照表现(红米Note2相机性能测评与样张欣赏)
- 飞书收集表中导入Excel表格的方法
- S900机油性能评测及使用经验(探索S900机油的卓越品质和适用性能)
- 笔记本E40拆屏教程(拆除E40笔记本屏幕,修理无忧。)
- N730显卡性能评测与使用指南(解锁N730显卡潜力,为您带来卓越游戏体验)
- 安卓手机下载安装游戏风流天子使用教程
- 腾讯王卡申请地址 腾讯王卡怎么申请
- 简单实用的电脑系统删除教程(快速删除电脑系统,轻松清理硬盘空间)
- Android L与Android 4.4截图对比
- Android 5.0的拍照相对之前的系统有提升吗? 企业服务器亿华云网站建设云服务器香港物理机源码库b2b信息平台