原文章地址:http://www.2cto.com/kf/201301/186681.html
由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时候,发现 为什么struts1要用servlet,而struts2要用filter呢?一时又发现,servlet和filter有什么区别呢?于是看了看 web.xml,一时又发现,咦,servlet、filter、listener?还有个interceptor?对于这几个概念,本应是初学者就掌握 的东东了,可惜本人基础学的不好,只能是现在补课。于是就有了这篇博客。
慢慢来吧,需要补课的地方还有很多很多呀。初学的时候都不知道他们存在呢。呵呵。
下面从几个方面阐述一下题目中四个概念的区别与联系:
1、概念
2、生命周期
3、职责
4、执行过程
一、概念:
1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。
2、filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。
3、listener:监听器,从字面上可以看出listener主要用来监听只用。通过listener可以监听web服务器中某一个执行动作,并根据 其要求作出相应的响应。通俗的语言说就是在application,session,request三个对象创建消亡或者往其中添加修改删除属性时自动执 行代码的功能组件。
4、interceptor:是在面向切面编程的,就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法,比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。
5、servlet、filter、listener是配置到web.xml中,interceptor不配置到web.xml中,struts的拦截器配置到struts.xml中。spring的拦截器配置到spring.xml中。
二、生命周期:
1、servlet:servlet的生命周期始于它被装入web服务器的内存时,并在web服务器终止或重新装入servlet时结束。servlet一旦被装入web服务器,一般不会从web服务器内存中删除,直至web服务器关闭或重新结束。
(1)、装入:启动服务器时加载Servlet的实例;
(2)、初始化:web服务器启动时或web服务器接收到请求时,或者两者之间的某个时刻启动。初始化工作有init()方法负责执行完成;
(3)、调用:从第一次到以后的多次访问,都是只调用doGet()或doPost()方法;
(4)、销毁:停止服务器时调用destroy()方法,销毁实例。
2、filter:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行)
(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
(2)、每一次请求时都只调用方法doFilter()进行处理;
(3)、停止服务器时调用destroy()方法,销毁实例。
相关推荐
Java WEB 篇九 Java servlet、filter、listener、interceptor 之间的区别和联系?
在Web开发中,`filter`、`servlet`、`listener`和`interceptor`都是重要的组件,它们各自承担着不同的职责。以下是它们的详细解释和对比: 1. **Servlet**: - Servlet是一个Java类,用于扩展服务器的功能。它们在...
Java Web开发中,Servlet、Filter、Listener和Interceptor这四种组件在处理请求和响应的过程中扮演着不同的角色,它们都是Java EE规范中不可或缺的部分,用于增强应用程序的功能和灵活性。 **1. Servlet** Servlet...
Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法 标题:Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法 描述:Spring Boot 中如何定义过滤器、监听器和拦截器,对 Spring Boot ...
它与Spring MVC结合使用,为应用程序提供动态内容生成的能力。 4. **Spring Security Core**: ```xml <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> ...
<bean class="com.example.demo.interceptor.LoginInterceptor" /> </mvc:interceptors> </beans> ``` - **组件扫描**:扫描Controller包,自动注册Controller类。 - **视图解析器**:用于解析视图名,返回视图...
3. **servlet、filter、listener、interceptor**:这些是Servlet容器中的组件。servlet处理HTTP请求;filter对请求和响应进行拦截处理;listener监听特定的容器事件;interceptor在Controller之前和之后执行,实现了...
在WebWork中,`web.xml`主要用来设置Servlet、过滤器(Filter)以及监听器(Listener): 1. **WebWork Dispatcher Servlet**:WebWork通过DispatcherServlet处理HTTP请求。你需要在`web.xml`中注册这个Servlet,并...
<servlet-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</servlet-class> </servlet> <servlet-mapping> <servlet-name>struts2</servlet-name> <url-pattern>/*</url-pattern...
在本文档中,我们将深入探讨Spring Boot如何使用注解来管理和配置Controller、Servlet、Filter、Listener以及Interceptor。 首先,让我们关注Spring Boot中的Controller加载。在Spring Boot应用中,`@SpringBoot...
`Struts2拦截器(Interceptor)`通常与`Filter`类似,用于增强MVC框架中的请求处理,但它们更专注于业务逻辑层面,而`Filter`更通用,可以在任何Servlet容器中使用。`Servlet,Filter的url-pattern详解`文件可能解释了...
Structs是一个轻量级、高性能的Java Web开发框架,它为开发者提供了强大的MVC模式支持,简化了Web应用的构建过程。本压缩包文件包含了搭建Structs环境所需的所有jar包和相关文档,使得开发者可以快速地在自己的项目...
"springboot-web"这个项目显然关注的是SpringBoot与Web相关的集成技术,包括Servlet、Filter、Listener以及Interceptor。这些组件是构建高效、可扩展的Web应用不可或缺的部分。现在,我们将深入探讨这些知识点。 ...
- **Filter、Listener**:学习Servlet过滤器(Filter)和监听器(Listener)的使用方法。 - **JSP开发**(重点): - **JSP语法和标签**:掌握JSP页面的编写,了解JSP指令和动作标签。 - **自定义标签**:学习如何...
根据提供的标题、描述、标签及部分内容,我们可以总结出以下与Java、Java EE、Struts2、Spring、Hibernate相关的学习知识点: ### Java基础 - **Java语言特性**:介绍Java的基本语法,包括变量、数据类型、流程...
在Java Web开发中,Filter、Listener和Interceptor是三个至关重要的组件,它们各自承担着不同的职责,共同构建了一个灵活且强大的应用程序架构。以下是对这三种组件的详细解释: 1. **Filter(过滤器)**: 过滤器...
- Filter与Listener:掌握过滤器和监听器的配置及应用场景。 - Session与Cookie:理解会话管理和客户端持久化数据的方式。 - JDBC与数据库连接池:了解JDBC操作数据库的基本步骤,以及Druid、HikariCP等连接池的...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
Servlet接口定义了Web服务器如何与Java类交互,处理来自客户端(如浏览器)的请求并发送响应。Servlet3.0是Servlet规范的一个重要版本,引入了许多新特性,如异步处理、注解支持和简化部署描述符。 1. **Servlet3.0...