0 0

1)servlet和filter有什么区别;2)servlet、filter、interceptor的执行顺序? 5

1)servlet和filter有什么区别;2)servlet、filter、interceptor的执行顺序?

问题补充:感谢几位的回答,那是不是说,struts中的执行过程中已经没有直接用到servlet了?
filter-》DispatchFilter(interceptor)-》result(jsp),(虽然这里的jsp本质也是servlet,但是感觉没用到servlet的控制了)
2010年5月10日 22:29

7个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
filter-》DispatchFilter(interceptor)-》result(jsp)


注意result也可是Servlet的。

2010年5月11日 17:35
0 0

看看这张图,再看看这篇文章,应该明白了servlet跟action之间的关系。action只是处理业务逻辑,并不是servlet。ActionServlet才是struts中控制器,在底层负责所有的转发,分配处理等。



http://cheng5259.iteye.com/blog/638716

2010年5月11日 17:42
0 0



引用
org.apache.struts.action.ActionServlet


这个是struts 中最核心的servlet,所有的请求都是通过它。

2010年5月11日 17:39
0 0

其实你可以把 Interceptor理解为 Struts的Filter调用的方法。这样你就清楚了。

这个流程和以前的  Filter-> Servlet 一样的。

2010年5月11日 17:38
0 0

引用
servlet和filter有什么区别


看Servelt规范:
引用
A filter is a reusable piece of code that can transform the content of HTTP requests, responses, and header information. Filters do not generally create a response or respond to a request as servlets do, rather they modify or adapt the requests for a resource, and modify or adapt responses from a resource.


简要翻译下:
filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。

再在看Filter的继承体系(不继承Servlet接口):

public interface Filter


所以第一个结论:Servlet和Filter没有关系!但是2者可以很好的协同工作。


引用

servlet、filter、interceptor


首先,关于Interceptor。Interceptor是XWork中引入的概念,Struts2的核心是XWork2。Struts2的DispatcherFilter从SerlvetContainer中,获取到HTTP请求,然后交由内部的Interceptor处理。

Interceptor不是Servlet JSR中的概念。所以Interceptor与其他Filter的执行顺序,取决于Struts2的DispatcherFilter与其他Filter的执行顺序。


问题变为: Servlet  Filter  Struts2的DispatcherFilter的执行顺序。

在Servlet JSR中说明了Servlet和Filter执行的顺序:

如果一个请求匹配了一个Serlvet,并且该Servlet配置了一个或者多个Filter,毫无疑问,先执行Filter,再执行Servlet。

对与多个匹配的Filter,哪个先执行呢?

JSR中说明的是,按照多个匹配的Filter,是按照其在web.xml中配置的顺序来执行的。

所以这也就是,把自己的Filter或者其他的Filter(比如UrlRewrite的Filter)放在Struts的DispatcherFilter的前面的原因。因为,它们需要在请求被Struts2框架处理之前,做一些前置的工作。

当Filter被调用,并且进入了Struts2的DispatcherFilter中后,Struts2会按照在Action中配置的Interceptor Stack中的Interceptor的顺序,来调用Interceptor。


2010年5月11日 06:47
0 0



filter与servlet:
http://www.cnblogs.com/Fskjb/archive/2010/03/27/1698448.html

filter 与 struts 拦截器
http://bruceyoo.iteye.com/blog/631355
http://jwx0925.iteye.com/blog/631968

Struts2中拦截器与过滤器的执行顺序证明:
http://blog.163.com/mail_sv/blog/static/13853926420102295392416/

==============
略多细读

2010年5月11日 01:46
0 0

1)servlet和filter的区别
Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

2)servlet、filter、interceptor的执行顺序

通过上图可以看到,顺序应该是我们配的filter在前,之后是struts2的FilterDispatcher,然后是各个拦截器,最后原路返回。

2010年5月10日 23:07

相关推荐

    Struts2_interceptor_和_filter区别

    标题和描述均聚焦于“Struts2_interceptor_和_filter区别”,这暗示着对比和解析Struts2框架中拦截器(Interceptor)与过滤器(Filter)的差异是本文的核心议题。接下来,我们将深入探讨这两者在功能、实现方式以及...

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

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

    Interceptor与Filter的区别

    ### Interceptor与Filter的区别 在Java Web开发中,拦截器(Interceptor)与过滤器(Filter)是两种常见的处理请求和响应的技术。它们虽然都用于在请求处理前后执行某些操作,但其实现机制、应用场景以及作用范围等...

    Filter以及Interceptor的区别

    Filter和Interceptor虽然都是用来拦截请求并执行特定逻辑的技术,但它们在使用场景、配置方式和执行范围等方面存在显著差异。理解这些差异有助于开发者更好地选择适合当前应用场景的技术方案,从而提高应用程序的...

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

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

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

    2. **加载顺序**:web.xml中的加载顺序通常是context-param -> listener -> filter -> servlet,而Interceptor的执行顺序取决于框架的规则。 3. **职责**:Servlet主要负责业务逻辑处理,Filter用于处理请求和响应...

    Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法

    描述:Spring Boot 中如何定义过滤器、监听器和拦截器,对 Spring Boot 编写 Servlet、Filter、Listener、Interceptor 的相关知识感兴趣的朋友一起看看吧 标签:spring boot 编写Servlet Filter Listener Inter ...

    Servlet和Struts2的交互(转载)

    1. 直接集成:在Servlet中创建Struts2的ActionContext,并手动设置请求和响应对象,然后调用Action的execute()方法执行业务逻辑。 2. 使用Filter转发:配置Struts2的Filter在Servlet处理完请求后,将控制权交给...

    SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系

    在Java Web开发中,Spring MVC框架提供了两种机制来处理请求:拦截器(Interceptor)和过滤器(Filter)。它们都是在请求被控制器处理之前和之后执行的一系列预处理和后处理操作,但它们在功能、使用场景和工作原理...

    Servlet简单模拟Struts2

    为了达到类似Struts2的效果,我们可以创建一个Servlet过滤器(Filter),在`doFilter`方法内进行请求的初步处理和转发。过滤器可以注册到web.xml文件中,对特定URL路径或所有请求进行拦截。 2. **解析自定义XML数据...

    浅谈SpringMVC中Interceptor和Filter区别

    浅谈SpringMVC中Interceptor和Filter区别 SpringMVC中Interceptor和Filter是两个重要的概念,它们都是用来处理用户请求的,但它们有着不同的作用和实现机制。本文将详细介绍Interceptor和Filter的区别,帮助读者更...

    Struts2中Servlet的配置

    当一个项目同时使用了Struts2框架和直接的Servlet时,可能会遇到问题,因为Struts2有自己的请求处理流程,可能会覆盖或干扰到Servlet的正常工作。为了解决这个问题,可以创建一个过滤器,例如`ReDispatcherFilter`...

    浅谈SpringMVC的拦截器(Interceptor)和Servlet 的过滤器(Filter)的区别与联系 及SpringMVC 的配置文件

    在本文中,我们将深入探讨SpringMVC的拦截器(Interceptor)和Servlet的过滤器(Filter)之间的差异和联系,以及如何配置SpringMVC的拦截器。理解这两者的区别对于开发高效且安全的Web应用程序至关重要。 首先,让我们...

    servlet和springmvc源码servlet和springmvc源码

    - **异步处理**:Servlet3.0引入了异步Servlet API,允许在服务线程中执行长时间运行的任务,提高服务器性能。 - **过滤器链的改进**:过滤器可以使用`@WebFilter`注解定义,并且支持链式调用,便于管理过滤器顺序...

    简单理解Struts2中拦截器与过滤器的区别及执行顺序

    Struts2 中的拦截器和过滤器都是用于处理请求的机制,但它们的实现机制、作用域和执行顺序都有所不同。了解这两个机制的差异可以帮助开发者更好地使用 Struts2 框架来构建高效、可靠的 Web 应用程序。

    webfilter的教程

    `Servlet和Filter的url匹配url-pattern-JSP编程教程`以及`servlet和JSP过滤器Filter-JSP教程`可能提供了关于如何配置`Filter`以匹配特定URL模式的示例,这对于控制访问权限和执行预处理逻辑非常重要。 综上所述,`...

    Filter模式-2013-8-9

    在模拟Struts2设计模式时,可能涉及Action、Interceptor(拦截器)和Result的概念。Action是业务逻辑的载体,Interceptor是在Action执行前后运行的逻辑,可以实现如权限检查、日志记录等通用功能。Result则是Action...

    SpringBoot中使用Filter和Interceptor的示例代码

    SpringBoot中使用Filter和Interceptor的示例代码 在SpringBoot框架中,Filter和Interceptor是两个非常重要的概念,它们都可以用来拦截和处理HTTP请求,但是它们的实现机制和使用场景却有所不同。下面将详细介绍...

    Struts2--1.Filter作为控制器并搭建Struts2的基本环境

    Filter是Servlet API的一部分,它允许开发者在请求到达目标Servlet或JSP之前对其进行拦截和处理,以及在响应返回给客户端之后进行后处理。在Struts2中,我们可以利用Filter作为控制器,将请求路由到Struts2的Action...

    springboot-Servlet3.0过滤器

    应谨慎选择过滤器的执行范围和执行逻辑,确保只处理必要的请求。 通过以上知识点,我们可以了解到Spring Boot与Servlet 3.0过滤器的集成和使用方式,以及它们在Web应用程序中的角色和作用。正确理解和运用这些知识...

Global site tag (gtag.js) - Google Analytics