servlet,listener,filter,intercepter

servlet是服务器端执行的小程序,主要作用是动态响应web请求。

filter是将servlet请求进行过滤处理,一个servlet请求可以由多个fliter进行顺序处理,执行的顺序是按照在web.xml中的配置顺序执行的。

servlet listener是对SerlvetConext,HttpSession和ServletRequest这三个域对象进行监听。

Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型:

1>监听三个域对象创建和销毁的事件监听器

2>监听域对象中属性的增加和删除的事件监听器

3>监听绑定到HttpSession域中的某个对象的状态的时间监听器。

a、如三个域对象的创建与销毁方法签名:

ServletRequestListener有以下两个方法

void requestDestroyed(ServletRequestEvent sre)

void requestInitialized(ServletRequestEvent sre)

HttpSessionListener有以下两个方法

void sessionCreated(HttpSessionEvent se)

void sessionDestroyed(HttpSessionEvent se)

ServletContextListener

void contextDestroyed(ServletContextEvent sce)

void contextInitialized(ServletContextEvent sce)

b、三个类型对象域中增、删、改的监听器(3个)

ServletContextAttributeListener,

HttpSessionAttributeListener,

ServletRequestAttributeListener

c、感知型监听器(2个):监听自己何时被帮到session上,何时解绑了;何时被钝化了,何时被活化了(序列化到某个存储设置中)。

注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化。

HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定,和解绑

HttpSessionActivationListener:实现该接口的类(要求些javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化。

intercepter是应用在struts中的对action进行拦截处理。拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制。

监听器详解参考:http://www.open-open.com/lib/view/open1350703815649.html

比较参考:http://blog.csdn.net/x_yp/article/details/6358630

时间: 2024-07-31 11:49:34

servlet,listener,filter,intercepter的相关文章

java web.xml listener servlet 和filter的加载顺序

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servle

servlet、filter、listener继承的基类和获得作用域的方式

一.servlet: 1.servlet属于j2ee的组件,构建servlet的web project不需要导入项目框架jar包 2.servlet的体系结构:  在j2ee API中,提供给servlet的支持接口和基类都位于javax.servlet.*和javax.servlet.http.*(提供所有与http请求有关的API)两个包中  servlet包中常使用的接口   Interface ServletConfig   Interface ServletContext   Inte

web.xml 相关 listener filter servlet

突然发现知识忘记了···记一下··· 配置节的加载顺序: context-param -> listener -> filter -> servlet (同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的) Filter:  在请求一个资源或者从一个资源返回信息的时候执行过滤操作的插件(形如权限控制) javax.servlet.Filter接口 对用户请求的预处理    Filter不是一个servlet,它不能产生一个response,它能够在一个r

web.xml之context-param,listener,filter,servlet加载顺序及其周边

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

web.xml中关于Servlet、Filter、Listener的配置

(一)web.xml不同元素的加载顺序 加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. web.xml 的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的 (二)web.xml文件详解 (2.1) 首先是sche

web.xml 之contextParam,listener,filter,servlet的加载顺序

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

Spring Boot使用Servlet、Filter或Listener的方式

根据官方文档说明,有两种方式可以在你的Spring Boot应用中使用Servlet.Filter或Listener. 其一:将Servlet.Filter或Listener注册成Spring Bean. 注意: 由于这三者与容器有关,它们不会被延迟初始化!所以,一般情况下不能注入其他Spring Bean -- 但不是说不能获取,你完全可以使用某些手段,在调用之前再注入! Servlet.Filter可以使用ServletRegistrationBean.FilterRegistrationB

SpringBoot(四)-- 整合Servlet、Filter、Listener

SpringBoot中有两种方式可以添加 Servlet.Filter.Listener. 1.代码注册,通过ServletRegistrationBean. FilterRegistrationBean 和 ServletListenerRegistrationBean 获得控制 1) Servlet @Bean public ServletRegistrationBean servletRegistrationBean() { return new ServletRegistrationBe

Java的Servlet、Filter、Interceptor、Listener

写在前面: 使用Spring-Boot时,嵌入式Servlet容器可以通过扫描注解(@ServletComponentScan)的方式注册Servlet.Filter和Servlet规范的所有监听器(如HttpSessionListener监听器). Spring boot 的主 Servlet 为 DispatcherServlet,其默认的url-pattern为"/".一般情况系统默认的Servlet就够用了,如果需要自定义Servlet,可以继承系统抽象类HttpServlet