`
cii001
  • 浏览: 24542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java学习-servlet/filter/listener/interceptor区别与联系(转)

    博客分类:
  • java
 
阅读更多

原文章地址: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()方法,销毁实例。
\"></div>
<div>         3、listener:类似于servlet和filter</div>
<div> </div>
<div>           web.xml 的加载顺序是:context- param -> listener -> filter -> servlet </div>
<div> </div>
<div>       4、interceptor:以struts的拦截器为例,加载了struts.xml以后,初始化相应拦截器。当action请求来时调用intercept方法,服务器停止销毁interceptor。</div>
<div> </div>
<div>       三、职责</div>
<div> </div>
<div>       1、servlet:</div>
<div> </div>
<div>        创建并返回一个包含基于客户请求性质的动态内容的完整的html页面;</div>
<div>        创建可嵌入到现有的html页面中的一部分html页面(html片段);</div>
<div>        读取客户端发来的隐藏数据;</div>
<div>        读取客户端发来的显示数据;</div>
<div>        与其他服务器资源(包括<a class=
分享到:
评论

相关推荐

    Java WEB 篇九 Java servlet、filter、listener、interceptor ?.xmind

    Java WEB 篇九 Java servlet、filter、listener、interceptor 之间的区别和联系?

    filter__serverlet__listener与interceptor的相同点与区别.doc

    在Web开发中,`filter`、`servlet`、`listener`和`interceptor`都是重要的组件,它们各自承担着不同的职责。以下是它们的详细解释和对比: 1. **Servlet**: - Servlet是一个Java类,用于扩展服务器的功能。它们在...

    Java servlet、filter、listener、interceptor之间的区别和联系

    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 编写Servlet、Filter、Listener、Interceptor的方法 描述:Spring Boot 中如何定义过滤器、监听器和拦截器,对 Spring Boot ...

    maven spring security框架搭建

    它与Spring MVC结合使用,为应用程序提供动态内容生成的能力。 4. **Spring Security Core**: ```xml &lt;groupId&gt;org.springframework.security&lt;/groupId&gt; &lt;artifactId&gt;spring-security-web&lt;/artifactId&gt; ...

    IDEASSM框架实战CRUDSSM整合配置MyBatis逆向工程.docx

    &lt;bean class="com.example.demo.interceptor.LoginInterceptor" /&gt; &lt;/mvc:interceptors&gt; &lt;/beans&gt; ``` - **组件扫描**:扫描Controller包,自动注册Controller类。 - **视图解析器**:用于解析视图名,返回视图...

    最全java八股文高级/资深面试题

    3. **servlet、filter、listener、interceptor**:这些是Servlet容器中的组件。servlet处理HTTP请求;filter对请求和响应进行拦截处理;listener监听特定的容器事件;interceptor在Controller之前和之后执行,实现了...

    webWork,xwork.xml,web.xml配置

    在WebWork中,`web.xml`主要用来设置Servlet、过滤器(Filter)以及监听器(Listener): 1. **WebWork Dispatcher Servlet**:WebWork通过DispatcherServlet处理HTTP请求。你需要在`web.xml`中注册这个Servlet,并...

    ssh整合代码(struts2.0+hibernate+spring)

    &lt;servlet-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;struts2&lt;/servlet-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern...

    Eclipse-SpringBoot框架-注解介绍.docx

    在本文档中,我们将深入探讨Spring Boot如何使用注解来管理和配置Controller、Servlet、Filter、Listener以及Interceptor。 首先,让我们关注Spring Boot中的Controller加载。在Spring Boot应用中,`@SpringBoot...

    webfilter的教程

    `Struts2拦截器(Interceptor)`通常与`Filter`类似,用于增强MVC框架中的请求处理,但它们更专注于业务逻辑层面,而`Filter`更通用,可以在任何Servlet容器中使用。`Servlet,Filter的url-pattern详解`文件可能解释了...

    搭建structs环境所有的jar包

    Structs是一个轻量级、高性能的Java Web开发框架,它为开发者提供了强大的MVC模式支持,简化了Web应用的构建过程。本压缩包文件包含了搭建Structs环境所需的所有jar包和相关文档,使得开发者可以快速地在自己的项目...

    springboot-web

    "springboot-web"这个项目显然关注的是SpringBoot与Web相关的集成技术,包括Servlet、Filter、Listener以及Interceptor。这些组件是构建高效、可扩展的Web应用不可或缺的部分。现在,我们将深入探讨这些知识点。 ...

    Java学习的详细路线图

    - **Filter、Listener**:学习Servlet过滤器(Filter)和监听器(Listener)的使用方法。 - **JSP开发**(重点): - **JSP语法和标签**:掌握JSP页面的编写,了解JSP指令和动作标签。 - **自定义标签**:学习如何...

    java javaee struts2 spring hibernate免费学习视频教程

    根据提供的标题、描述、标签及部分内容,我们可以总结出以下与Java、Java EE、Struts2、Spring、Hibernate相关的学习知识点: ### Java基础 - **Java语言特性**:介绍Java的基本语法,包括变量、数据类型、流程...

    javaweb 项目中三种组件实例

    在Java Web开发中,Filter、Listener和Interceptor是三个至关重要的组件,它们各自承担着不同的职责,共同构建了一个灵活且强大的应用程序架构。以下是对这三种组件的详细解释: 1. **Filter(过滤器)**: 过滤器...

    java面试题

    - Filter与Listener:掌握过滤器和监听器的配置及应用场景。 - Session与Cookie:理解会话管理和客户端持久化数据的方式。 - JDBC与数据库连接池:了解JDBC操作数据库的基本步骤,以及Druid、HikariCP等连接池的...

    java后台权限管理系统源码(spring boot+mvc+mybatis).zip

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    Java 权限管理系统 shiro + ssm实现

    项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...

    servlet和springmvc源码servlet和springmvc源码

    Servlet接口定义了Web服务器如何与Java类交互,处理来自客户端(如浏览器)的请求并发送响应。Servlet3.0是Servlet规范的一个重要版本,引入了许多新特性,如异步处理、注解支持和简化部署描述符。 1. **Servlet3.0...

Global site tag (gtag.js) - Google Analytics