Java Web(十)Filter和Listener

简介: 两个对象Filter和Listener

Filter和Listener

一.Filter

  • 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。
  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。
  • 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等

image-20221020204824927

1.快速入门

  • 定义类,实现Filter接口,并重写其所有方法

publicclassFilterDemoimplementsFilter{

   publicvoidinit(FilterConfigfilterConfig)

   publicvoiddoFilter(ServletRequestrequest

   publicvoiddestroy(){}

}

  • 配置Filter拦截资源的路径:在类上定义@WebFilter注解

@WebFilter("/*")

publicclassFilterDemoimplementsFilter{}

  • 在doFilter方法中输出一句话,并放行

publicvoiddoFilter(ServletRequestrequest,Ser

   System.out.println("filter被执行了...")

   //放行

   chain.doFilter(request,response);

}

2.Filter执行流程

网络异常,图片无法展示
|

1.放行后访问对应资源,资源访问完成后,还会回到Fter中吗?  会

2.如果回到Filter中,是重头执行还是执行放行后的逻辑呢?放行后逻辑

网络异常,图片无法展示
|

3.使用细节

3.1Filter拦截路径配置
  • Filter可以根据需求,配置不同的拦截资源路径

@WebFilter("/*")

publicclassFilterDemo

  • 拦截具体的资源:/index,jsp:只有访问lindex,jsp时才会被拦截。
  • 目录拦截:/user/:访问/user下的所有资源,都会被拦截后缀名拦截:
  • jsp:访问后缀名为jsp的资源,都会被拦截
  • 拦截所有:*:访问所有资源,都会被拦截
3.2过滤器链
  • 一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链

网络异常,图片无法展示
|

  • 注解配置的Filter,优先级按照过滤器类名(字符串)的自然排序

二.监听器

  • 概念:Listener表示监听器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。
  • 监听器可以监听就是在application,session,request:三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件
  • Listener分类:JavaWeb中提供了8个监听器
监听器分类 监听器名称 作用
ServletContext监听 ServletContextListener 用于对ServletContextx对象进行监听(创建、销毁)
ServletContextAttributeListener 对ServletContext对象中属性的监听(增删改属性)
Session监听 HttpSessionListener 对Session对象的整体状态的监听(创建、销毁)
HttpSessionAttributeListener 对Session对象中的属性监听(增删改属性)
HttpSessionBindingListener 监听对象于Sessionl的绑定和解除
HttpSessionActivationListener 对Session数据的钝化和活化的监听
Request监听 ServletRequestListener 对Request对象进行监听(创建、销毁)
ServletRequestAttributeListener 对Request对象中属性的监听(增删改属性)
目录
相关文章
|
3天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
3天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
3天前
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
|
3天前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
|
2天前
|
Java
java中Stream流中的forEach、filter、map、count、limit、skip、concat
java中Stream流中的forEach、filter、map、count、limit、skip、concat
7 0
|
6天前
|
安全 前端开发 Java
Java Web项目登录报Session Error
Java Web项目登录报Session Error
12 0
|
8天前
|
安全 Java 数据库连接
Java Web应用
Java Web应用
10 0
|
26天前
|
前端开发 JavaScript Java
Java语言在Web前端开发中的技术应用
Java语言在Web前端开发中的技术应用
|
27天前
|
设计模式 存储 前端开发
Java的mvc设计模式在web开发中应用
Java的mvc设计模式在web开发中应用
|
1月前
|
前端开发 Java 数据库
Java Web开发全攻略:构建高性能Web应用
【4月更文挑战第2天】Java Web开发围绕Servlet和JSP展开,结合Spring/Spring Boot、Struts2、Hibernate等框架构建高性能应用。数据库选择和优化、前端技术如Angular/React/Vue.js以及CI/CD实践是关键。从电子商务到企业系统,Java Web技术为企业与用户互动提供强大平台。持续学习和适应新技术,以应对Web开发挑战。
Java Web开发全攻略:构建高性能Web应用