struts2体系结构图:
当接收到一个httprequest ,
a) 当外部的httpservletrequest到来时
b) 初始到了servlet容器 传递给一个标准的过滤器链
c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy
d) ActionProxy将会通过ConfigurationManager来查找配置struts.xml
i. 下一步将会通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前)
ii. Interceptor做一些拦截或者初始的工作
e) 一旦action返回,会查找相应的Result
f) Result类型可以是 jsp或者freeMark 等
g) 这些组件和ActionMapper一起返回给请求的url(注意拦截器的执行顺序)
h) 响应的返回是通过我们在web.xml中配置的过滤器
i) 如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocal ActionContext;如果ActionContextCleanUp不使用,则将会去清理sreadlocals。
1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
分享到:
相关推荐
### 拦截器与过滤器的区别 #### 一、概念简介 在现代软件开发过程中,特别是Web应用程序中,为了实现灵活高效的业务逻辑处理及控制流管理,常常会使用到两种设计模式:拦截器(Interceptor)与过滤器(Filter)。...
拦截器和过滤器的区别 1. 实现机制:拦截器基于 Java 反射机制,而过滤器基于函数回调。 2. 依赖关系:拦截器不依赖于 Servlet 容器,而过滤器依赖于 Servlet 容器。 3. 作用域:拦截器只能对 Action 请求起作用,...
通过对Struts 2框架中过滤器和拦截器的核心区别以及具体应用场景的分析,我们可以看到,虽然两者都能实现类似的功能(如权限验证),但它们的工作方式和技术基础存在明显差异。选择合适的技术方案取决于实际项目的...
过滤器和拦截器是两种在Java Web开发中用于处理请求的机制,它们在功能上有相似之处,但在实现方式和使用场景上存在显著区别。这里我们将深入探讨这两种技术,以及它们在Spring MVC框架中的应用。 首先,拦截器是...
在Java Web开发中,Spring MVC框架提供了两种机制来处理请求:拦截器(Interceptor)和过滤器(Filter)。它们都是在请求被控制器处理之前和之后执行的一系列预处理和后处理操作,但它们在功能、使用场景和工作原理...
本文将深入探讨Struts框架中的拦截器(Interceptor)以及它与过滤器(Filter)的区别,并结合文件上传功能进行讲解。 1. 拦截器与过滤器的概念 - **拦截器**:在Struts2框架中,拦截器是基于AOP(面向切面编程)的...
在本文中,我们将深入探讨如何在Spring Boot应用中使用拦截器(Interceptor)和过滤器(Filter)来处理用户的登录session。这两个组件都是Spring框架的重要部分,它们在处理HTTP请求和响应时发挥着关键作用。 首先...
本项目主要关注的是如何使用过滤器(Filter)和拦截器(Interceptor)来实现登录页面的控制与跳转。以下是对这些知识点的详细说明: 1. **SpringBoot**: SpringBoot是Spring框架的一个子项目,旨在简化Spring应用...
过滤器和拦截器的区别 过滤器和拦截器是两个常见的概念在 Java Web 开发中,它们都可以用来对请求进行处理和过滤,但是它们之间有着本质的区别。 首先,从机制上来说,拦截器是基于 Java 的反射机制的,而过滤器是...
"拦截器过滤器.rar"这个压缩包文件很可能包含了一些示例代码或教程,教你如何在Web应用程序中实现请求和响应的过滤与拦截。让我们深入探讨这两种技术。 1. **拦截器(Interceptor)** 拦截器通常在基于MVC(Model-...
在Java Web开发中,拦截器(Interceptor)和过滤器(Filter)是两种常见的处理请求和响应的机制。它们都在请求到达目标Servlet之前进行介入,但各自有着不同的应用场景和功能特点。参数读取则是从客户端传递到服务器...
项目提供的`程序说明.docx`文档应该包含了如何部署和运行此示例的详细步骤,这对于开发者理解和学习拦截器和过滤器的工作机制非常有帮助。`Demo_Struts2_fileter.war`是一个Web应用的归档文件,可以直接在支持...
拦截器(Interceptor)和过滤器(Filter)的区别: 1. 拦截器是基于 Java 的反射机制的,而过滤器是基于函数回调。 2. 过滤器依赖于 Servlet 容器,而拦截器不依赖于 Servlet 容器。 3. 拦截器只能对 Action 请求起...
Filter过滤器与Interceptor拦截器有很多相似
拦截器和过滤器的区别 1、拦截器基于动态代理 , 过滤器基于函数回调 2、拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器 3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求...
浅谈基于过滤器与拦截器的用户访问控制,stuts2中拦截器和过滤器的应用
在Web开发领域,过滤器(Filter)和拦截器(Interceptor)是两种常见的机制,它们用于在请求被实际处理之前或之后执行特定的操作。这两种技术在Java Web应用中尤为常见,尤其是使用Servlet API或者Spring框架的时候...
Spring框架拦截器和过滤器:基于Java开发,包含34个文件,包括28个Java类文件、3个XML配置文件、1个.gitignore文件、1个SQL文件和1个YAML配置文件。该项目是关于Spring框架的拦截器和过滤器的设计,过滤器是Java Web...