« JSP 编码规范« »Struts 使用ForwardAction »
Structs 1 处理流程

当ActionServlet  收到一个请求,  它通过一系列的流程处理locale, mapping, form bean, 最
后是 Action来运行这个请求。这里某些步骤只在 Struts 1.1  应用才有:
?  处理多部分请求.  如果请求是个多部分 (multipart) 请求 (比如, 一个表单加上一个MIME
附件), Servlet  用一个特殊的句柄包装这个请求,避免处理错误。
?  处理路径  ActionServlet 首先检查这个请求路径是否是一个应用模块。如果是,相应模
块的配置被选中。[Struts 1.1]
?  处理场所.(local)  默认下,ActionServlet 会检查是否有一个标准的locale  对象在用户会
话的上下文当中。如果没有, ActionServlet将放入一个。这个对象将为每个用户提供
本地化表现。
?  处理内容和缓存   默认的MIME  类型和可选的请求头将加在响应之上。
?  处理映射( Mapping)  ActionServlet检查ActionMapping,是否有注册的路径符合正处
理的请求。如果没找到,ActionServlet  转发到默认(或 “unknown”) Action(如果设定有
默认或未知Action),否则,产生一个 “bad request”  错。如果找到相关映射,将被放入
请求之中,供后面引用。 
?  处理角色.   ActionServlet 检查是否用户被授权可以访问action. [Struts 1.1]。

?  处理ActionForm. ActionServlet  检查是否mapping 中指定了一个ActionForm.。如果是,
servlet  检查是否已经有一个存在于特定的范围之内(默认是会话)。如果不存在,
ActionServlet 创建一个。
?  处理组装. ActionForm的  reset  方法被调用,然后通过反射机制被自动组装。匹配
ActionForm属性的参数将被使用。其他参数和属性被忽略。
?  处理验证   ActionForm的  validate  方法被调用。如果方法返回false,  控制传递给
ActionMapping的input  属性标明的路径, Action 未被处理。
?  处理转发和包含  如果ActionMapping 标明forward  或include 属性,控制被传递给其
他资源。否则ActionServlet  将请求委托给一个Action  对象。
?  处理 Action.  如果mapping  标明一个Action  类型, ActionServlet检查是否已经有一个被
实例化了。如果没发现, Action  对象将被实例化。每个类只能有一个Action  对象
(Singleton  模式),它通过多线程处理所有对它的请求。Servlet调用 Action的  perform
或  execute 方法,传递请求,  响应, mapping,  以及form bean。
Action  执行要求的行为,可以包括:
?  访问数据系统,比如JDBC  数据库
?  在请求中创建被视图使用的对象
?  如果需要,在会话中创建对象

?  根据需要更新会话对象,比如用户的场所
?  执行需要的业务功能

?  处理以外和其他错误条件
?  发送一个直接发送一个响应,或者返回一个ActionForward 给servlet
这里某些行为,象访问数据库,通常由 Action 调用的业务对象来处理( Business Delegate
模式)。 Action  处理一些 web 特定的任务,可以放在业务对象中的代码都应该放入业务对
象。Action 是一个控制器类,不应该用来处理业务的核心逻辑。

Action返回ActionForward
Action 完成后,它返回一个 ActionForward。如果 ActionForward  为 null, ActionServlet
假定响应产生了,但不做任何事情。否则,  ActionServlet 读入 ActionForward  ,重定向
或者转发请求到相应的资源。
如果请求是另一个 Action  URI,  容器将请求返回给 ActionServlet。否则容器发送请求到其
它 servlet 或service。
如果 ActionForward  设为重定向(redirect),  请求被发送回客户端,并提示重新提交一个
新请求到特定的地址。  


Tags: 流程  java  struts  

原创文章如转载,请注明:转载自:飞扬部落编程仓库 : http://www.busfly.net/csdn/

本文链接地址:http://www.busfly.net/csdn/post/Structs-Process.html

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:
JSP 编码规范  (2008-8-26 14:4:30)
java系列大多数的知识点  (2008-8-6 17:46:19)
软件工程师不可不知的10个概念  (2008-8-4 9:17:48)
Java程序员需要了解的几个开源协议  (2008-7-31 17:32:13)
Java Reflection (JAVA反射)详解  (2008-7-22 17:35:34)
Java: JNI完全手册  (2008-7-22 17:13:56)
JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法  (2008-7-20 18:1:59)
Java内部类总结  (2008-7-20 0:42:54)
JUnit in java 真正的测试用例实战  (2008-7-14 11:0:25)
struts2.0的标签库(简介)  (2008-7-11 8:48:16)




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
Feed订阅集
网站分类
勤劳致富^.^
最近发表
最新评论及回复
最近留言
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(VS为主):3769186.