Filter+Listener的简单使用
来源:互联网 发布:js怎样隐藏鼠标指针 编辑:程序博客网 时间:2024/05/17 20:27
Filter+Listener
8-31,星期四 8:52:31
Web三大组件
1. Servlet2. Filter3. Listener
Filter 过滤器
过滤请求使用步骤: Filter的使用方式与Servlet基本相同1. 编写一个类 实现Filter2. 在web.xml中 进行配置
代码实现
package cn.xdl.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * 过滤器 * * 用来过滤请求 * @author j * */public class UserFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("过滤器正在初始化"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest request2 = (HttpServletRequest) request; HttpServletResponse response2 = (HttpServletResponse) response; HttpSession session = request2.getSession(); if(session.getAttribute("userName")==null){ System.out.println("过滤器发现了一个不匹配的请求, 已经过滤掉, 且将其重定向到了登录页面"); session.setAttribute("loginFlag", "sada"); response2.sendRedirect("login.jsp"); return; } //放行 System.out.println("过滤器执行了放行操作"); chain.doFilter(request, response); } @Override public void destroy() { System.out.println("过滤器正在准备销毁"); }}
web.xml配置案例
一个过滤器过滤多个页面 <filter> <filter-name>userfilter</filter-name> <filter-class>cn.xdl.filter.UserFilter</filter-class> </filter> <filter-mapping> <filter-name>userfilter</filter-name> <url-pattern>/userInfo.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>userfilter</filter-name> <url-pattern>/manager.jsp</url-pattern> </filter-mapping>
Filter方法
1. 初始化方法 , 当tomcat运行时执行 public void init(FilterConfig filterConfig);2. 执行过滤的方法 , 包含了请求对象与相应对象, 以及过滤器链的操作对象public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain);3. 准备销毁时执行的方法, 在tomcat关闭时执行public void destroy();
在过滤器链中 , 执行的顺序
1. 通过web.xml配置的Filter优先级较高! 2. web.xml配置越靠前 , 优先级越高
Listener监听器
Servlet规范中定义的一种特殊的组件,用来监听Servlet容器产生的事件并进行相应的处理容器产生的事件分类 - 生命周期相关的事件 - 设置和删除Attribute数据相关的事件
ServletContextListener监听器
在ServletContext创建时和关闭时都会通知ServletContextListener方法: servletContextInitialized(ServletContextEvent sce) 当ServletContext创建的时候,将会调用这个方法 servletContextDestroyed(ServletContextEvent sce) 当ServletContext销毁的时候(例如关闭应用服务器或者重新加载应用),将会调用这个方法。
ServletContextAttributeListener监听器
当往Servlet Context添加、删除或者替换一个属性的时候,将会通知ServletContextAttributesListener 方法: void attributeAdded(ServletContextAttributeEvent scab) 往ServletContext中加入一个属性的时候触发; void attributeRemoved(ServletContextAttributeEvent scab) 从ServletContext中删除一个属性的时候触发; void attributeReplaced(ServletContextAttributeEvent scab) 改变ServletContext中属性的时候触发。
HttpSessionListener监听器
当一个HttpSession刚被创建或者失效(invalidate)的时候,将会通知HttpSessionListener 方法: void sessionCreated(HttpSessionEvent hse) 当一个HttpSession对象被创建时,将会调用这个方法; void sessionDestroyed(HttpSessionEvent hse) 当一个HttpSession超时或者调用HttpSession的invalidate()方法让它销毁时,将会调用这个方法
HttpSessionAttributesListener监听器
HttpSession中添加、删除或者替换一个属性的时候,将会通知HttpSessionAttributesListener 方法: void attributeAdded(HttpSessionBindingEvent e) 当往会话中加入一个属性的时候,将会调用这个方法; void attributeRemoved(HttpSessionBindingEvent e) 当从会话中删除一个属性的时候,将会调用这个方法; void attributeReplaced(HttpSessionBindingEvent e) 当改变会话中的属性的时候,将会调用这个方法
在web.xml中配置listener组件
<listener> <listener-class> cn.xdl.listener.MyListener </listener-class> </listener>
阅读全文
0 0
- Filter+Listener的简单使用
- springboot 使用Servlet,Filter,Listener的方法
- Filter与Listener使用案例
- Filter和listener的区别
- Servlet、Filter、Listener的简介
- Servlet、Filter、Listener的简介
- Listener Filter Servlet的应用
- servelt filter listener 的生命周期
- Filter、Servlet、Listener的学习
- Java的Listener、Filter、Servlet
- Spring Boot的listener简单使用
- Listener的简单介绍及使用
- Filter过滤器的简单使用
- Filter及FilterChain的使用详解以及servlet、filter、listener 区别
- Listener监听器简单使用
- Filter & Listener
- Listener&Filter
- Filter & Listener
- RandomAccessFile应用
- 史上最详cxf-Springmvc-maven实现webservice教程
- eclipse配置tomcat相关设置备忘
- php面试题之五——MySQL数据库(基础部分)
- Linux菜鸟笔记——BASH(三)
- Filter+Listener的简单使用
- 单一职责原则(C++)
- hdu6129
- Servlet Response对象输出验证码
- Hbuilder里关于Tab的几个骚操作(快捷)
- 换零钱---背包
- ubuntu上使用网络抓包工具Fiddler查看手机的数据请求
- 【CUGBACM15级BC第10场 B】hdu 5019 Revenge of GCD
- 难点汇总