监听器Listener与过滤器Filter
2017-03-21 20:47
344 查看
Listener是Servlet规范的一个高级特性。用于监听JavaWeb中的事件,例如创建、修改、删除Session、request 、context等并触发相应的事件。
Listener需要实现相应的接口,并在web.xml中配置相应的listener
Servlet 2.5 规范中共有8种监听器 分别用于监听Session、request、Context等的创建、销毁、属性变化等。
1 . HttpSessionListener接口
2 . ServletRequestListener接口
3 . ServletContextListener接口
4 . ServletContextListener接口
可以用其实现当态登录,比如把所有的session存放到Map中,若其他地点登录该账户,根据Map中其session,把该session中的登录的账号信息删除,即只让新登录的可行。如session中放入(“personInfo”,PersonInfo)。
5 . ServletContextAttributeListener接口
6 . ServletRequestAttributeListener接口
以下两种监听器监听的是session中的对象不是session本身,故不需要再web.xml中申明
比如在JavaBean中实现下面两个接口,当把该bean放入session中会触发下面接口中的方法。
7 . HttpSessionBindingListener接口
实现该接口的对象被被绑定、解绑到session时会触发相应的方法。
8 . HttpSessionActivationListener接口
服务器关闭时,会将session中的内容保存的硬盘上,这个过程叫钝化;服务器启动时,会将硬盘中的session内容重新加载。
Filter用于对request或response进行修改。
Filter接口。
需要在web.xml中配置
Listener需要实现相应的接口,并在web.xml中配置相应的listener
<!-- <listener>标签一般配置在<servlet>标签前面 --> <listener> <listener-class>全类名</listener-class> </listener>
Servlet 2.5 规范中共有8种监听器 分别用于监听Session、request、Context等的创建、销毁、属性变化等。
1 . HttpSessionListener接口
public void sessionCreated(HttpSessionEvent arg0) { HttpSession session=arg0.getSession(); } public void sessionDestroyed(HttpSessionEvent arg0) { HttpSession session=arg0.getSession(); }
2 . ServletRequestListener接口
public void requestDestroyed(ServletRequestEvent arg0) { ServletRequest request=arg0.getServletRequest(); } public void requestInitialized(ServletRequestEvent arg0) { ServletRequest request=arg0.getServletRequest(); }
3 . ServletContextListener接口
@Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub }
4 . ServletContextListener接口
可以用其实现当态登录,比如把所有的session存放到Map中,若其他地点登录该账户,根据Map中其session,把该session中的登录的账号信息删除,即只让新登录的可行。如session中放入(“personInfo”,PersonInfo)。
@Override public void attributeAdded(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeRemoved(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeReplaced(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub }
5 . ServletContextAttributeListener接口
public void attributeAdded(ServletContextAttributeEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeRemoved(ServletContextAttributeEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeReplaced(ServletContextAttributeEvent arg0) { // TODO Auto-generated method stub }
6 . ServletRequestAttributeListener接口
@Override public void attributeAdded(ServletRequestAttributeEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeRemoved(ServletRequestAttributeEvent arg0) { // TODO Auto-generated method stub } @Override public void attributeReplaced(ServletRequestAttributeEvent arg0) { // TODO Auto-generated method stub }
以下两种监听器监听的是session中的对象不是session本身,故不需要再web.xml中申明
比如在JavaBean中实现下面两个接口,当把该bean放入session中会触发下面接口中的方法。
7 . HttpSessionBindingListener接口
实现该接口的对象被被绑定、解绑到session时会触发相应的方法。
@Override public void valueBound(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub } @Override public void valueUnbound(HttpSessionBindingEvent arg0) { // TODO Auto-generated method stub }
8 . HttpSessionActivationListener接口
服务器关闭时,会将session中的内容保存的硬盘上,这个过程叫钝化;服务器启动时,会将硬盘中的session内容重新加载。
//对象重新加载 @Override public void sessionDidActivate(HttpSessionEvent arg0) { // TODO Auto-generated method stub } //对象钝化 @Override public void sessionWillPassivate(HttpSessionEvent arg0) { // TODO Auto-generated method stub }
Filter用于对request或response进行修改。
Filter接口。
@Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub }
需要在web.xml中配置
<filter>
相关文章推荐
- Filter(过滤器)、Listener(监听器)
- JavaEE Web开发之Filter和Listener(过滤器和监听器)
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- Servlet3.0介绍~使用注解标注监听器(Listener)和过滤器(Filter)
- Listener和Filter监听器和过滤器
- Web中的监听器【Listener】与过滤器【Filter】 实例
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- 过滤器(Filter)监听器(Listener)
- Java 反射(reflection)/注释(Annotation)/监听器(Listener)/装饰器(wrapper)/过滤器(Filter)一锅煮
- Servlet3.0介绍~使用注解标注监听器(Listener)和过滤器(Filter)
- servlet 过滤器(Filter)和监听器(listener)
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- Filter(过滤器)、Listener(监听器)
- 为springmvc设置servelet、拦截器(interceptor)、监听器(listener)、过滤器(filter),类型转换器
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
- JSP对象之cookie、session、过滤器(Filter)、监听器(Listener)
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别