足球大赢家即时比分网 浅析Servlet过滤器

日期:2021-08-09/ 分类:足球大赢家即时比分网

本文转载自微信公多号「码工是幼希」,作者码工是幼希。转载本文请有关码工是幼希公多号。

1 定义

Servlet过滤器和 Servlet 很相通,仔细的是它有阻截客户端乞求的用法,Servlet过滤器能够转折乞求中的内容,已足实际开发的必要。

7月9日,当地媒体开始报道针对伊朗火车系统的网络攻击,黑客在火车站的显示屏上涂鸦以要求乘客拨打伊朗最高领袖哈梅内伊办公室的电话号码“64411”。

 马云支持“996”,李国庆反对“996”

据日本放送协会(NHK)报道,东京奥运会目前正在如火如荼地进行中。奥运期间,伪装成手机运营商进行网络欺诈案件数量有上升的趋势,日本各大通信商呼吁用户加强防范。

【51CTO.com原创稿件】亚马逊云科技技术峰会一直都是业界云计算技术风向标,同时也深受开发者以及技术人员的青睐。早在2014年,亚马逊云科技还未正式在中国商用时,便开始了技术布道。而亚马逊云科技技术峰会也不同于其他厂商的会议,会更加注重技术,让与会者更深入地理解云计算的知识,了解如何以最高效的方式使用亚马逊云科技的技术,打造自己的云或云服务。

开发来讲足球大赢家即时比分网,过滤器内心上是在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>            

【编辑保举】足球大赢家即时比分网

JavaWeb企业级综相符实战项现在开发-人员管理体系(Servlet/逆射/BaseServlet) 异步 Servlet 都不懂,谈何 WebFlux? Dubbo先启动客户端再启动服务端,线上收银体系崩了 项现在实战-酒店预订体系iPhone客户端开发(Objective - C版) Zabbix系列—②源码编译安置 5.2.6版本(Agent客户端)