Struts与webwork已合并为Struts2框架,Struts2框架良好的扩展性与简洁性使其适用于任何规模的企业web程序的开发.本节我们将向大家展示Struts2框架的结构
在Struts2中一个请求的生存周期:
1. 用户发送请求 : 用户为访问资源向服务器发送请求.
2. FilterDispatcher决定适当的action : FilterDispatcher接受请求然后决定调用适当的action
3. 调用拦截器 : 配置拦截器来应用常用的功能如工作流,验证,文件上传等,都是自动应用于请求的.
4. action的执行 : 然后action将被执行来调用诸如存储数据、检索数据之类的数据库相关操作.
5. 呈递输出 : 结果呈递到输出
6. 返回请求 : 请求通过拦截器按照相反的顺序返回,返回的请求可以允许我们执行一些清理或额外的处理
7. 向用户展示结果 : 控制权最终回归到输出结果至用户浏览器的Servlet容器
图:Struts2中请求流程的高度概括
Struts2 结构 :
Struts2框架拥有良好的简洁性与易扩展的前端控制器,基于很多像Java Filters, Java Beans, ResourceBundles, XML等标准技术.
对于模型层来说,Struts2可以使用任何数据访问技术,像JDBC, EJB, Hibernate等,对于视图层来说,Struts2可以与JSP, JTL, JSF, Jakarta Velocity Engine, Templates, PDF, XSLT等整合.
异常处理 :
Struts2允许我们定义异常处理器和拦截器
l 异常处理器
异常处理器允许我们定义基于局部和全局的异常处理程序.Struts2捕获到异常后会将恰当的信息和异常的详情显示在我们指定的页面上.
l 拦截器
拦截器详细说明了一个action的请求流程的生存周期.配置的拦截器对请求实现了一些常用的功能如工作流,验证等.
Struts2 结构
下图描述了Struts2的结构,同时展示了初始请求如何转到像Tomcat这类的serlet容器,然后通过过滤链
图 : Struts2 结构
过滤器链包括 :
l Action ContextCleanUp filter :
Action ContextCleanUp filter是可选的,当与其他的技术如SiteMash插件整合的时候会很有帮助.
l FilterDispatcher :
接着FilterDispatcher被调用,然后依次调用ActionMapper来决定是不是要引用一个action.如果一个action需要被引用, FilterDispatcher将托付ActionProxy来管理
l ActionProxy :
Action代理能从初始化自struts.xml的配置文件管理器那得到帮助,接着ActionProxy创建一个实现了命令模式的ActionInvocation,ActionInvocation在处理的过程中调用拦截器(如果配置了)然后调用Action ActionInvocation寻找恰当的结果,然后结果呈递到JSP或者模板上.
之后拦截器再按照相反的顺序执行了一遍,最终响应通过配置在web.xml中的过滤器返回.如果配置了ActionContextCleanUp filter, FilterDispatcher不会清理线程局部ActionContext.如果ActionContextCleanUp filter没有被配置, FilterDispatcher会清理所有当前的线程局部.
本章我们学习了Struts2框架的结构.
- 大小: 9.1 KB
- 大小: 25.2 KB
分享到:
相关推荐
Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它提供了结构化的开发环境,简化了Web应用的构建。而`FilterDispatcher`是Struts 2早期版本中的关键组件,用于处理HTTP请求的分发...
Struts2是一个强大的Java web开发...总的来说,Struts2提供了一个强大且灵活的架构,帮助开发者构建结构清晰、易于维护的Java web应用。通过深入学习和实践,我们可以掌握其核心概念和配置方法,进一步提升开发效率。
org.apache.struts2, org.apache.struts2.components, org.apache.struts2.components.template, org.apache.struts2.config, org.apache.struts2.dispatcher, org.apache.struts2.dispatcher.mapper, org.apache....
Struts2核心包`struts2-core-2.0.11`包含了框架的核心组件和功能,使得开发者能够构建结构清晰、易于维护的Web应用。 在源码分析中,以下几个关键知识点是非常重要的: 1. **拦截器(Interceptors)**:Struts2的...
3. Struts2 项目的结构: Struts2 项目的结构主要包括以下几个部分:src 目录、lib 目录、web 目录和资源文件目录。src 目录用于存放 Java 源文件,lib 目录用于存放依赖的 jar 文件,web 目录用于存放 JSP 文件和...
3. ognl-2.x.x.jar:对象图导航语言,Struts2使用它作为表达式语言。 4. freemarker-2.3.x.jar:FreeMarker是一个模板引擎,Struts2的UI标签通常用它来创建视图。 5. commons-logging-1.1.x.jar:Apache的日志包,...
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为...
Apache Struts2是一款强大的、开源的Java web框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了一种构建结构清晰、可维护性强的Web应用程序的方法。本书"Practical Apache Struts2 Web 2.0 ...
在Struts2中,DTD(Document Type Definition)文件扮演着重要的角色,它定义了配置文件的结构和规则。下面我们将详细探讨不同版本的Struts2 DTD及其相关知识点。 1. **Struts2 DTD 的作用** - Struts2 DTD 是XML...
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 ... 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 60
Struts2是一款强大的Java Web...通过合理利用这些注解,你可以创建出结构清晰、易于维护的Struts2项目,而无需担心过多的XML配置带来的困扰。在实际开发中,结合Spring等框架,还能进一步提升应用的灵活性和可扩展性。
Struts2是一个强大的Java web应用框架,用于构建结构清晰、可维护性高的MVC(Model-View-Controller)架构的应用程序。在这个“美河原创视频.struts2系列讲座配套word”中,主要讲解了如何在Struts2中实现国际化(i18...
3. **类型转换的配置**:Struts2允许通过XML配置文件或注解来指定特定字段的类型转换规则。在struts.xml中,可以使用`<conversion>`元素定义全局转换规则,或者在Action类的字段上使用`@Conversion`注解指定局部转换...
.....Struts2体系结构 .....Struts2工程创建 .....struts-default.xml .....struts.xml .....struts.properties .....Action_编写与配置 .....Action_访问容器与校验 .....Action_ResultType .....XWork拦截器 ........
虽然书名提及的是Struts,但作为专业的指南,可能会对比Struts1和Struts2的区别,介绍Struts2的新特性,如更强大的拦截器系统、更简洁的配置方式以及对AJAX的支持等。 总之,《Apress.Beginning.Apache.Struts.From...
3. **国际化支持**:Struts 2内置了对多语言的支持,可以通过简单的配置实现不同语言的应用程序界面。 4. **插件系统**:Struts 2具有丰富的插件生态系统,这些插件可以轻松地扩展框架的功能,比如集成Ajax支持、...
6. **结构视图**:展示Struts项目的结构,包括Action、Form、JSP等元素,便于理解和管理项目。 7. **集成开发环境**:与Eclipse的其他功能无缝集成,如版本控制、构建工具等,为开发者提供一站式开发体验。 `...
此过滤器位于`struts2-core-2.5.2.jar`中,可以使用解压工具查看其内部结构。 配置struts.xml文件是另一个关键步骤。在这个文件中,你需要定义Action、结果类型和其他相关设置。配置文件中的版本号(如`struts-...
Struts2是一个强大的MVC(Model-View-Controller)框架,用于组织和管理Java web应用程序的结构。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。...