zoukankan      html  css  js  c++  java
  • JavaWeb过滤器

    JavaWeb三大组件

    1. 都需要在web.xml中进行配置
    Servlet
    Listener(2个感知监听器不需要配置)
    Filter

    2. 过滤器
      它会在一组资源(jsp、servlet、.css、.html等等)的前面执行!
      它可以让请求得到目标资源,也可以不让请求达到!
      * 过滤器有拦截请求的能力!

    -------------------------------

    过滤器如何编写

    1. 写一个类实现Filter接口
    2. 在web.xml中进行配置

    Filter接口


    代码:

    public class Afilter implements Filter {
    
        /**
         * 销毁之前调用
         * 
         * **/
        @Override
        public void destroy() {
        }
    
        /**
         * 每次执行时调用
         * */
        @Override
        public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain arg2) throws IOException, ServletException {
    
        }
         /**
          * 
          * 创建时马上执行,用来初始化
          * */
        @Override
        public void init(FilterConfig arg0) throws ServletException {
        }
    
    }


    web.xml

    <filter>
      <filter-name>xxx</filter-name>
      <filter-class>cn.itcast.web.filter.AFitler</fitler-class>
    </filter>
    <fitler-mapping>
      <filter-name>xxx</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

    -------------------------------

    FilterConfig-->与ServletConfig相似
      * 获取初始化参数getInitParameter()
      * 获取过滤器名称getFilterName()
      * 获取applictiongetServletContext()

    FilterChain
      * doFilter(ServletRequest, ServletResponse):放行!
        放行,就相当于调用了目标Servlet的service()方法!

    --------------------------------------------------------------


    多过滤器

    FilterChain#doFilter()方法:
      执行目标资源,或是执行下一个过滤器!如果没有下一个过滤器那么执行的是目标资源,如果有,那么就执行下一个过滤器!


    --------------------------------------------------------------

    过滤器的四种拦截方式

      <dispatcher>REQUEST</dispatcher>//请求,默认!<dispatcher>FORWARD</dispatcher>//转发
      <dispatcher>INCLUDE</dispatcher>//包含
      <dispatcher>ERROR</dispatcher>//错误

    在<filter-mapping>中进行配置!
    --------------------------------------------------------------

    多个过滤器的执行顺序

    <filter-mapping>的配置顺序决定了过滤器的执行顺序!

  • 相关阅读:
    HTML直接引用vue.min.js,bootstrap-vue.min.js,axios.min.js等开发一个页面(2)
    HTML直接引用vue.min.js,bootstrap-vue.min.js,axios.min.js等开发一个页面
    [Vue+Element UI]不知道总页码数时如何实现翻页
    [Vue] 报错: Uncaught (in promise)
    [Vue + Element UI] 单选框
    [Lombok] Lombok的使用和常用注解使用示例
    Eclipse的Web项目开发:Maven插件jetty服务器的关闭
    [Python] 电脑同时安装python2和python3, 如何实现切换使用
    [Yaml] YAML 入门教程
    k8s ha的安装
  • 原文地址:https://www.cnblogs.com/lxp503238/p/6689215.html
Copyright © 2011-2022 走看看