Filter(过滤器)

Filter(过滤器),第1张

概述目录 Filter(过滤器) 过滤器介绍 过滤器工作流程 过滤器生命周期 简单实现过滤器 FilterConfig 使用 关于过滤器配置 过滤器的应用顺序 Filter(过滤器) 过滤器介绍 web过滤器:过滤器实现对web资源请求的拦截,完成特殊的功能 *** 作,尤其是对请求的预处理。 作用:一般用于完成通用的 *** 作。如:登录验证、统一编码处理、敏感字符过滤... 过滤器工作流程 过滤器生命周期 ini

目录

Filter(过滤器) 过滤器介绍 过滤器工作流程 过滤器生命周期 简单实现过滤器 FilterConfig 使用 关于过滤器配置 过滤器的应用顺序 Filter(过滤器) 过滤器介绍

web过滤器:过滤器实现对web资源请求的拦截,完成特殊的功能 *** 作,尤其是对请求的预处理。

作用:一般用于完成通用的 *** 作。如:登录验证、统一编码处理、敏感字符过滤...

过滤器工作流程

过滤器生命周期 init():在服务器启动后,会创建Filter实例对象,然后调用init()方法,进行初始化。只执行一次。用于加载资源 doFilter():拦截请求处理,完成指定功能,每一次请求被拦截资源时,都会执行。 destroy():Filter对象会驻留在内存中,在服务器关闭后会调用destroy()方法,Filter对象才被销毁。用于释放资源。 简单实现过滤器 编写java类实现Filter接口,实现doFilter()方法 配置web.xml文件,对filter类注册,并设置拦截请求

FilterDemo1.java

package filter;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import java.io.IOException;public class FilterDemo1 implements Filter {    public voID destroy() {    }    public voID doFilter(ServletRequest req,ServletResponse resp,FilterChain chain) throws servletexception,IOException {        System.out.println("过滤器执行了....");        //请求传回过滤链        chain.doFilter(req,resp);    }    public voID init(FilterConfig config) throws servletexception {    }}

web.xml配置

<filter>        <filter-name>demo1</filter-name>         <filter-class>filter.FilterDemo1</filter-class>  </filter>  <filter-mapPing>        <filter-name>demo1</filter-name>        <url-pattern>/*</url-pattern>   //拦截路径  </filter-mapPing>
FilterConfig 使用

Filter 的 init 方法中提供了一个 FilterConfig 对象。

如 web.xml 文件配置如下:

<filter>    <filter-name>FilterDemo</filter-name>    <filter-class>filter.FilterDemo</filter-class>    <init-param>        <param-name>initparam</param-name>        <param-value>我是初始化参数</param-value>    </init-param>    </filter>

在 init 方法使用 FilterConfig 对象获取参数:

public voID  init(FilterConfig config) throws servletexception {    // 获取初始化参数    String initparam = config.getinitParameter("initparam");     // 输出初始化参数    System.out.println("初始化参数: " + initparam); }
关于过滤器配置

关于过滤器配置方式有两种:一种是配置web.xml文件,另外一种就是注解的方式。

配置web.xml文件
<filter>        <filter-name>demo1</filter-name>        //过滤器名                      <filter-class>filter.FilterDemo1</filter-class>   //类所在的包  </filter>  <filter-mapPing>        <filter-name>demo1</filter-name>        <url-pattern>/*</url-pattern>   // filter 所拦截的请求路径        <dispatcher>REQUEST</dispatcher>  //指定过滤器所拦截的资源被 Servlet 容器调用的方式  </filter-mapPing>
使用注解
@WebFilter("/*")
@WebFilter(value="/index.Jsp",dispatcherTypes = dispatcherType.REQUEST)

资源被访问的方式
①在web.xml中配置 标签
②在注解中设置dispatcherTypes属性

访问方式:

REQUEST:默认值。浏览器直接请求资源 FORWARD:转发访问资源 INCLUDE:包含访问资源 ERROR:错误跳转资源 ASYNC:异步访问资源 过滤器的应用顺序

当配置多个过滤器,形成过滤链时,过滤器的执行顺序为web.xml配置中 定义的先后顺序来执行。若使用注解配置,则会按照类名的字串符比较规则,值小的先执行。

总结

以上是内存溢出为你收集整理的Filter(过滤器)全部内容,希望文章能够帮你解决Filter(过滤器)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存