番外-过滤+监听+拦截

过滤器:

官方:它依赖于servlet容器。在实现上,基于函数回调,它可以对几
乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化
时调用一次。使用过滤器的目的,是用来做一些过滤操作,获取我们
想要获取的数据
配置:web.xml
常用:过滤所有请求改变编码,防止乱码
代码:
<filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>encoding</filter-name>
    <servlet-name>/*</servlet-name>
</filter-mapping>
拦截器:

官方:它依赖于web框架,在SpringMVC中就是依赖于SpringMVC框
架。在实现上,基于Java的反射机制,属于面向切面编程(AOP)的
一种运用,就是在service或者一个方法前,调用一个方法,或者在方
法后,调用一个方法。
配置:springmvc.xml
常用:拦截非正常流程
代码:
 <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:mapping path="/grade/*"/>
            <mvc:exclude-mapping path="/system/login"/>
            <mvc:exclude-mapping path="/system/get_cpacha"/>
            <mvc:exclude-mapping path="/h-ui/**"/>
            <mvc:exclude-mapping path="/easyui/**"/>
            <mvc:exclude-mapping path="/home-resources/**"/>
            <mvc:exclude-mapping path="/home/**"/>
            <bean class="com.ischoolbar.programmer.interceptor.LoginInterceptor"></bean>
        </mvc:interceptor>
    </mvc:interceptors> 
监听器:

配置:web.xml
常用:日志监听
代码:
    <!-- ContextLoaderListener监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 日志配置 -->
      <context-param>
       <param-name>log4jConfigLocation</param-name>
       <param-value>classpath:config/log4j.properties</param-value>
    </context-param>
    <listener>
       <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容