栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Filter (过滤器) Listener(监听器)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Filter (过滤器) Listener(监听器)

文章目录
  • Filter过滤器
    • 1. 概念
    • 2. 快速入门
      • 2.1 定义一个类,实现接口Filter,复写方法
      • 2.2 配置拦截路径
        • 2.2.1 web.xml 方法
        • 2.2.2 注解方法
    • 3. 过滤器生命周期方法
    • 4. 拦截路径匹配
  • Listener(监听器)
    • 1. 概念:web的三大组件之一。
    • 2. ServletContextListener监听器

Filter过滤器 1. 概念
  • Javaweb中的过滤器可以拦截请求(request)和响应(response)
  • 过滤器中拦截到的request和response 和servlet中的request和response是同一个
  • 一般用于完成通用的操作。如:登录验证、统一编码处理(response.setContentType())
2. 快速入门 2.1 定义一个类,实现接口Filter,复写方法
public class FilterDemo1 implements Filter {
		    @Override
		    public void init(FilterConfig filterConfig) throws ServletException {
		    }
		    
		    @Override
		    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {
		        System.out.println("filterDemo1被执行了....");
                //放行
		        filterChain.doFilter(servletRequest,servletResponse);
		    }
		    @Override
		    public void destroy() {
		    }
		}

2.2 配置拦截路径

配置拦截路径可以使用web配置文件web.xml,也可以使用注解注入

2.2.1 web.xml 方法

        demo1
        com.ruandy.web.filter.FilterDemo1
    
    
        demo1
		
        /*
    
2.2.2 注解方法
@WebFilter("/*")//  /* 匹配所有路径,访问所有资源之前,都会执行该过滤器
public class FilterDemo1 implements Filter {
      ...
}
3. 过滤器生命周期方法
  1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源
  2. doFilter:每一次请求被拦截资源时,会执行。执行多次
  3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源
4. 拦截路径匹配
  1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行
  2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行
  3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
  4. 拦截所有资源:/* 访问所有资源时,过滤器都会被执行
Listener(监听器) 1. 概念:web的三大组件之一。
  • 事件监听机制
    • 事件 :一件事情
    • 事件源 :事件发生的地方
    • 监听器 :一个对象
  • 注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码
2. ServletContextListener监听器

监听ServletContext对象的创建和销毁

  • 方法:
    • void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法
    • void contextInitialized(ServletContextEvent sce) :ServletContext对象创建后会调用该方法

步骤:

  • 定义一个类,实现ServletContextListener接口
  • 复写方法
  • 配置
    • web.xml
    
    com.ruandy.web.listener.ContextLoaderListener
    
    
    • 注解:
      • @WebListener
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/315098.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号