过滤器:
官方:它依赖于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>