首页 > 其他分享 >学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发

学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发

时间:2023-01-06 14:11:34浏览次数:46  
标签:Listener 销毁 web 创建 Filter 监听器 过滤器 注解

2023-01-06

一、过滤器链

1、含义:如果出现一个请求存在多个过滤器对其过滤,出现过滤器链。

在放行前,过滤器是正序执行,放行后过滤器是倒序执行。

2、过滤器的顺序:是与filter-mapping配置上下文位置有关

二、监听器

1、作用范围:

(1)监听域对象的创建和销毁

域对象:

①ServletContext:应用域(对象是web项目加载时创建,web项目卸载时销毁),监听器接口是“ServletContextListener”。

②HttpSession:会话域(第一次调用getSession创建,销毁是强制销毁),监听器接口是“HttpSessionListener”。

③HttpServletRequest:请求域(有请求就创建,响应结束就销毁),监听器接口是“HttpServletRequestListener”。

(2)监听域对象内共享数据的添加、修改、删除

①添加数据:setAttribute

②删除数据:removeAttribute

③修改数据:setAttribute (如果key值存在,此方法就是修改数据)

2、创建监听器

(1)创建一个类

先创建一个“web Application”的项目,删除“index.jsp”.在src文件夹下的“com.hh”下创建一个类“listener.HelloListener”

(2)实现一个接口

例如“ServletContextListener”

(3)实现接口中的抽象函数

public class HelloListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象创建后执行此方法");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象销毁后执行此方法");
    }
}

(4)注册监听器

在“WEB-INF”文件夹下的“web.xml”中

<listener>
    <listener-class>com.hh.listener.HelloListener</listener-class>
</listener>

三、Servlet、Filter、Listener的注解方式开发

功能:替代配置文件的。

1、Servlet的注解

(1)位置:在类的上方

(2)代码:

@WebServlet(name="HelloServlet",value="/hello")

注:name就相当于配置文件中的“servlet-name”的值;value就相当于配置文件中“url-pattern”的值

简写形式:name可以省略,当只剩下“value”属性,属性名可以省略,即:

@WebServlet("/hello")

2、Filter的注解

(1)位置:类的上方

(2)代码:

@WebFilter(filterName = "HelloFilter",urlPatterns = "/hello")

3、Listener的注解

(1)位置:类的上方

(2)代码:

@WebListener

 

标签:Listener,销毁,web,创建,Filter,监听器,过滤器,注解
From: https://www.cnblogs.com/isDaHua/p/17030136.html

相关文章

  • Java监听器实现原理
    文章目录​​监听器模型​​​​案例实现​​​​`DeveloperListener`​​​​`Developer`​​​​`Event`​​​​`DeveloperListenerImpl`​​​​测试​​监听器就是监听......
  • Filter与Servlet的区别与联系
    在我们写代码时,在web.xml中总能发现类似下面的代码:<spanstyle="font-family:KaiTi_GB2312;font-size:18px;"><spanstyle="font-family:KaiTi_GB2312;font-size:18px;"......
  • 高阶函数map和filter
    1.高阶函数内建高阶函数:map()、filter()高阶函数至少满足两个任意的一个条件能接收一个或多个函数作为输入输出一个函数2.高阶函数map的使用map()函数:根据......
  • librosa.filters.mel
    @deprecate_positional_args@cache(level=10)defmel(*,sr,n_fft,n_mels=128,fmin=0.0,fmax=None,htk=False,norm="slaney",......
  • CorsFilter跨域
    1、​​CORS跨域实现思路及相关解决方案​​2、​​spring跨域CORSFilter​​3、​​springboot设置cors跨域请求的两种方式​​4、​​CORSFilter解决前端跨域请求问题​......
  • sln、sdf、vcxproj、vcxproj.filter各是什么文件
    sln是解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息sdf(SQLServerCompactEditionDatabaseFile)文件,是工程的信息保存成了数据库文件,如果你......
  • 53、过滤器filters
    1、局部过滤器filters<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metanam......
  • 52、监听器watch
    想要监听那个属性,就在watch中编写对应属性的方法即可<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"con......
  • 第二十章《Java Swing》第4节:事件处理与监听器
    ​当程序员向窗体上添加了按钮等组件之后就能够操作这些组件,但在20.3小节的各个案例中,虽然在窗体上添加了一些按钮,但点击这些按钮并没有任何反应,因此这些按钮也就成了毫无意......
  • navicat 连接Oracle报错ORA-12514:TNS:listener does not currently know of service
     首先检查服务名是否正确,排除改原因后,定位原因为OCI环境和Oracle版本不匹配,Oracle官网下载高版本instantclient依赖解压到本地目录后,navicat-工具-选项-环境重新指定下oc......