转自:http://blog.youkuaiyun.com/x_yp/article/details/6358630
过滤器
Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。
其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,
此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;
同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。
它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。
web.xml中过滤器的配置:
<filter>
<filter-name>XXXXXFilter</filter-name>
<filter-class>com.dotuian.XXXXXFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>contentType</param-name>
<param-value>text/html;charset=UTF-8</param-value>
</init-param>
<filter>
<filter-mapping>
<filter-name>XXXXXFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
监听器
Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,
它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
它们能帮助开发者监听web中的特定事件,比如ServletContext,HttpSession,ServletRequest的创建和销毁;
变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监控。
web.xml中监听器的配置:
<listener>
<listener-class>com.dotuian.XXXXContextListener</listener-class>
</listener>
配置好了之后,以后在web应用中就可以通过ServletContext获取监听器中初始化的数据
Servlet的Listener监听器包括三种类型:
(1).ServletContextListener 监听ServletContext对象
(2).HttpSessionListener 监听Session对象
(3).HttpRequestListener 监听Request对象
拦截器
拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制。