Struts快速入门(二)

news/2025/2/27 10:33:26

Struts MVC 语义

我们从关键的Struts抽象概念开始,这是它MVC架构的核心。Struts使用Service to Worker模式实现了MVC模式。[Core]

 

控制器对象

控制器被ActionServlet类所实现。它提供一个中心位置来处理全部的终端请求。这就为处理视图和导航管理的控制层提供了更为清晰的划分,把模型访问和操作留给专门的请求处理器。全部提交的请求被映射到中心处理器,其配置说明如下:

action

org.apache.struts.action.ActionServlet

全部的请求URI*.do的模式存在并映射到这个servlet,其配置如下:

action

*.do

一个该模式的请求URI符合如下格式:

              http://www.my_site_name.com/mycontext/actionName.do

上述的映射叫做扩展映射,你也可以声明路径映射,使用/*结尾的模式,如下所示:

action

/do/*

一个该模式的请求URI符合如下格式:

http://www.my_site_name.com/mycontext/do/action_Name

如上描述的资源逻辑映射允许在配置文件中修改资源映射而不需修改任何应用系统代码。该映射方案也被用于Mulitplexed Resource Mapping。控制器为所有的表示层请求提供了一个集中的访问点。控制器区分每一个提交的请求到RequestProcessor,其轮流发送请求到相关的表单bean进行表单验证,然后发到一个请求处理器以访问模型。这个控制器提供的抽象概念减轻了开发者建立公共应用系统服务的困难,如管理视图、会话及表单数据。开发者支持一个通用机制如错误及异常处理,导航,国际化,数据验证,数据转换等。

Struts 1.1中,控制器需要在init()方法中读取配置。该配置控制了架构的行为,含有URI到请求处理器的映射如使用ActionMapping配置对象,设置信息资源,提供通过插件访问外部资源等等。事实上,提交请求的处理实际发生在ActionServlet委托所有的输入请求到RequestProcessor的过程中。

 

发送者对象

       RequestProcessor功能是作为发送者,按实例化(或复用)一个请求处理器和一个相应的表单bean来处理请求。表单bean和请求处理器中错误的建立或异常的抛出被RequestProcessor处理,并影响RequestProcessor的视图管理功能。表单bean辅助RequestProcessor保存表单数据和/或准备视图必须的中间模型数据。RequestProcessor使用 声明struts-config.xml文件,如下所示,例如特定请求的请求处理器。

type="packageName.EditCustomerProfileAction"

name="customerProfileForm"

scope="request"/>

type="packageName.customerProfileForm"/>

       全部提交的请求都被控制器委托到RequestProcessor的对象发送者。RequestProcessor检查请求URI找到动作标示符,并使用ActionMapping对象中的信息建立一个请求处理器实例,然后调用requesthandler.execute(…)方法。请求处理器中execute(…)方法任务是和应用模型互相作用。请求处理器根据结果返回以一个ActionForward配置对象到RequestProcessorRequestProcessor将用ActionForward对象来通过执行RequestDispatcher.forward(…)response.sendRedirect(…)来调用下一个视图。

 

(待续..)

 

冰云翻译,转载请告知。

icecloud@sina.com





http://www.niftyadmin.cn/n/3653769.html

相关文章

mongodb 最新版本高可用解决方案-replica sets副本集部署详细过程

Mongodb副本集:NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能,先来用用副本集。Mongodb副本集的同步机制:数据…

Struts快速入门(一)

Struts快速入门:它能做什么?它如何做?本文选自《Practical J2EE Application Architecture》的第四章,作者是Nadir Gulzar,并且由McGraw-Hill/Osborne Media(www.osborne.com)于2003年3月出版Published on TheServerSi…

MySQL 错误 ERROR 1118 42000 Row size too large The maximu

朋友发过来一个SQL,,让我执行以下:CREATE TABLE ttt ( id DOUBLE , select_type VARCHAR (57), table VARCHAR (192), type VARCHAR (30), possible_keys VARCHAR (22288), key VARCHAR (192), key_len VARCHAR (22288), ref VARCHAR (3072), rows DOUBL…

Struts快速入门(四)

使用ActionForward导航ActionForward对象是配置对象。这些配置对象拥有独一无二的标识以允许它们按照有意义的名称如“success”,“failure”等来检索。ActionForward对象封装了向前进的URL路径且被请求处理器用于识别目标视图。ActionForward对象建立自元素位于str…

ORACLE 树形遍历查询根节点 父节点 子节点

1、准备演示数据创建表结构:-- Create table createtable Z_ORG( cid NUMBER, cname VARCHAR2(32), parent_id NUMBER, create_time DATE, org_level NUMBER) tablespace POWERDESK pctfree10 initrans1 maxtrans255; -- Add…

Struts原理与应用(完)

Chapter 7: Taglib and Other Skills Struts principle and practice TAGLIBStruts对Taglib进行了扩展, Struts提供了四种基本自定义Taglib以及两种附加Taglib: bean:struts-bean taglib包含在访问bean和bean属性时使用的tag,也包…

nginx中location中关于proxy pass和rewrite的应用

1,问题描述 upstream datacollectbackend{ #ip_hash; server 10.234.1.211:6100 max_fails5 fail_timeout30s; server 10.234.1.26:7100 max_fails5 fail_timeout30s; } location ~* ^/OCC_DATACO_WEB/.*$ { include deny.conf;…

Struts原理与应用(二)

Chapter 3: Struts Configuration Struts principle and practice Struts可以运行在任何一个支持JSP1.2和Servlet2.3的WEB Container中 Struts将所有的请求提交到同一个中心控制器,org.apache.struts.action.ActionServlet 类 web.xml配置 actionorg.apache.struts.…