Struts 2的目标是自动化
Java Web开发中的常用操作,提高开发效率。
Struts 2中的action, result和FilterDispatcher分别是对model,view和controller的实现。FilterDispatcher将HTTP请求映射到相应的action(映射关系是在项目配置文件里定义的)。
Action组件用来实现数据和业务逻辑。JSP,
Velocity Template,
Freemaker或一些其他的展现层技术为视图(view)服务。
FilterDispatcher转发请求到某action时,如果该action没有实例化,则创建一个实例,关联到一个新的ActionInvocation实例上。对action的调用应该依照定义,传入一系列interceptor。
ActionInvocation的invoke()方法会启动action的执行。
每当invoke()方法被调用,ActionInvocation根据其状态,执行下一个interceptor。
ActionInvocation通过调用interceptor的intercept()方法来控制stack中的interceptor。
Interceptor的intercept()方法依次调用ActionInvocation的invoke()方法,直到所有的interceptor被调用。最后,action本身被调用,相应的结果返回给用户。
一些interceptor在action执行之前就会工作,一些interceptor在action之后工作。它们每次调用之时并不必须做出反应。
这些interceptor在action执行前后都被调用。
所有的interceptor都按照stack里的定义顺序被调用。
然后,action被调用,生成结果。
重申一次,stack中的所有interceptor按反向顺序被调用。
Struts2的另外重要特性是OGNL和ValueStack。
OGNL(Object-Graph Navigation Language)是强大的表达式语言,用来引用和操控
ValueStack中的数据。
OGNL帮助数据传输和类型转换。
OGNL表达式语言提供简化的语法来引用Java对象。
OGNL被用来将Java端数据属性绑定到string-based的view层。
action存在于ValueStack中,ValueStack则是ActionContext的一部分。ActionContext是全局的存储区域,保存一个HTTP request处理的相关数据。
当一个请求到达, params interceptor帮助将request data移动到ValueStack中。
OGNL将string based的表单数据转换成相应的Java类型。OGNL是利用一套内建的类型转换器莱完成这些的。
重申一次,当结果生成时,OGNL将ValueStack中的Java类型的属性转成string-based的HTML输出。
ActionContext是线程本地的,意思是其内部存储的值是线程唯一的,它保证了Struts2 action的线程安全。
分享到:
相关推荐
本教程将带你深入理解Struts2的基础概念、核心组件以及如何快速入门。 一、Struts2框架概述 Struts2是Struts1的升级版,它吸收了WebWork框架的优点,极大地提高了开发效率和代码的可维护性。Struts2基于拦截器模型...
### Struts 快速入门与关键技术解析 #### Struts 概览 Struts 是一个开源的 Java 应用框架,最初由 Craig R. McClanahan 编写,并于2000年捐赠给 Apache 软件基金会 (ASF)。自那时以来,Struts 已经发展成为一个...
Struts Kick Start 是一本专为初学者设计的指南,旨在帮助读者快速掌握Struts框架的基础知识和实际应用。Struts是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)架构的Java Web开发框架...
这个“Struts2快速上手(附例子)”教程显然旨在帮助开发者快速理解和应用Struts2框架。通过提供的压缩包文件“strutsDemo”,我们可以预期它包含了一个简单的Struts2示例项目,用于演示框架的基本用法和关键组件。 ...
Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...
Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...
Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...
3. 高效性:Struts2 框架提供了一个高效的架构,可以快速地处理用户的请求。 Struts2 框架的应用场景 Struts2 框架的应用场景包括: 1. 企业级应用程序:Struts2 框架适用于开发大型的企业级应用程序。 2. 电子...
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
- **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
struts2 的概念和作用 struts2 的HelloWorld 简单分析struts2 的运行流程 struts2 配置文件加载 struts.xml 配置文件详解 struts2 常量文件修改 Action 动作类的三种写法 Action 动作类的三...
总的来说,"struts2jar.zip"压缩包是一个实用的学习资源,涵盖了从基础到进阶的Struts2知识,通过阅读提供的说明和实践例子,可以帮助开发者快速掌握Struts2框架的使用。在实际开发中,结合具体的项目需求,可以灵活...
这个工具主要是针对上述漏洞进行利用的,通过自动化的方式帮助安全研究人员或者攻击者快速检测并利用Struts2框架中的漏洞。其主要功能可能包括: 1. **漏洞探测**:扫描目标服务器,识别是否存在Struts2的特定版本...
Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...
Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助...同时,它也是一个很好的学习资源,帮助初学者快速上手Struts2开发。
Struts2是一个强大的Java EE应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的Web应用。这个“struts2,struts2 demo”很...这个压缩包对于初学者来说是一个很好的学习资源,能够帮助你快速上手Struts2框架。
Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...