ActionInvocation
The Guy in charge。这是介绍ActionInvocation的标题说的一样。是整个链的核心。我觉得ActionInvocation其实是扮演一条链的开始点,和管理着的角色。起决定了,或者调用了各个intercepter的调用。
整个流程其实很简单,ActionInvocation调用了各个intercepter的intercept方法,这个方法,会把一个ActionInvocation做为参数传入intercepter,然后intercepter调用传入的ActionInvocation的invoke方法,把控制权传回给ActionInvocation方法。当一切结束时,会调用相应的action。也就这样,保证了各个intercepter的独立性。你可以任意的调配intercepter。而不用考虑他们之间是否匹配。
Intercepter
这是整个Sturts当中的核心。这一章的开头讲了它的很多作用。比如说简化代码,控制流程……很多的事情。
在看完这么多,做了一个练习之后,觉得从程序上来说,其起到类似于aop的作用。而观念上觉得,则是控制了一种流的概念。其实一个web的请求当中有很多事情。很多事情都是重复的,比方说数据的类型转换之类的。以往的过程中,我们把这些加入到了本身的业务代码中。耳边的凌乱,难以分析和修改。而intercepter正好解决了这个问题。如果说把每个工作分解成一个一个小的工作,然后再把这些工作封装成一个个intercepter。那么也就能够实现了重用,和便于修改了。
常用的Intercepter
TIMER:测量一个action运行时间的
LOGGER:日志
PARAMS (DEFAULTSTACK):负责把page上Stringl类型的数据转换成相应的java数据类型。
STATIC-PARAMS (DEFAULTSTACK):常量使用方法
<action name="exampleAction" class="example.ExampleAction"> <param name="firstName">John</param> <param name="lastName">Doe</param> </action>
AUTOWIRING:自动装配
SERVLET-CONFIG ( DEFAULTSTACK ):The servlet-config interceptor provides a clean way of injecting various objects from the Servlet API into your actions.觉得中文翻不好,就直接写英文了。我对其的理解是传一些web信息。觉得这有点偏颇。怎么说呢,原来的一些web信息通过这些来获得(让Action实现其相应的接口)。
FILEUPLOAD ( DEFAULTSTACK ):上传文件。
WORKFLOW (DEFAULTSTACK):提供验证。可以通过提供不同的参数来进行配置
VALIDATION (DEFAULTSTACK):和上面一样。不过主要还是提供一个借口,类似于SERVLET-CONFIG,
PREPARE (DEFAULTSTACK):The prepare interceptor provides a generic entry point for arbitrary workflow processing that you might want to add to your actions.继承,然后实现prepare接口。
MODELDRIVEN (DEFAULTSTACK):自动装配
EXCEPTION (DEFAULTSTACK):处理异常
TOKEN AND TOKEN-SESSION,防止重复请求
SCOPED-MODELDRIVEN (DEFAULTSTACK):MODELDRIVEN升级版
EXECANDWAIT:在常运行的app中,给用户以一定的回馈。
配置Intercepter
<action name="MyAction" class="org.actions.myactions.MyAction"> <interceptor-ref name="timer"/> <interceptor-ref name="logger"/> <!--引用defaultStack并给她们传参数--> <interceptor-ref name="defaultStack"> <param name="workflow.excludeMethods">doSomething</param> </interceptor-ref name> <result>Success.jsp</result> </action>
分享到:
相关推荐
在本篇“Struts2学习笔记三”中,我们将探讨Struts2中处理文件上传的核心组件和拦截器,以及如何在实际应用中实现文件上传。 1. 文件上传组件: - jspSmartUpload:这是一个早期用于模型1的上传组件,现在已经被更...
在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
struts2学习笔记struts2学习笔记struts2学习笔记
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...
structs2很详细的学习笔记,structs2的建造,工作原理,例子,逐步讲解,纯文字的
在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...