Filter基础

    xiaoxiao2021-03-25  107

    Filter的开发流程:       1.创建一个类,实现javax.servlet.Filter接口,实现其中三个方法 init(FilterConfig filterConfig) doFilter(ServletRequest request,ServletResponse,FilterChain chain) destroy() 其中,doFilter()方法中需要用chain.doFilter(request,response);方法,将request和response传给下一个资源,如servlet       2.将Filter交给服务器来管理,在web.xml文件中进行下面的配置 <filter> <filter-name></filter-name> <filter-class>filter的全限定名</filter-class> </filter> <filter-mapping> <filter-name></filter-name> <url-pattern>指定对哪些资源进行过滤</url-pattern> <filter-mapping>

    执行顺序同项目配置,都是从映射开始找到对应的filter

    filter中的url-pattern可以重复,表示同个资源需要经过不同的过滤器

    也可用注解配置 @WebFilter("/") 多个filter时的执行顺序: 1.在web.xml文件中看各个filter的<filter-mapping></filter-mapping>的位置的先后顺序 2.使用注解时,需要在类名前加大写字母A、B、C...决定执行顺序 需要过滤页面的设置:在 <filter-mapping> <dispatcher> REQUEST:正常的请求(缺省值) ERROR:    错误页面跳转 FORWARD:请求转发 INCLUDE:请求包含 </dispacther> </filter-mapping> 四种。不写默认是对REQUEST过滤 常见三种过滤器: 1.请求编码过滤器: 2.登录验证过滤器: 将需要通过登录后才能显示的页面的资源名称,先在web.xml文件中的<init-param>设置 在filter中设置一个全局变量集合,在初始化方法init()中获得上述的名称,在doFilter()方法中进行校验 3.敏感字过滤器: 先有一个工具类有对敏感字进行过滤的方法;编写一个继承HttpServletRequestWrapper类的类,重写getParameter()方法,调用工具类中的方法对接收的值进行过滤;filter中,形参先强转成HttpServletxxx类型的,再作为参数传给new出来的刚刚继承自HttpServletRequestWrapper类的对象,并把它通过chain.doFilter()方法交给servlet;servlet中拿到filter的req对象用getParameter()方法进行过滤
    转载请注明原文地址: https://ju.6miu.com/read-12938.html

    最新回复(0)