Struts的工作原理

2008.11.24 / 标签: ,,, / 分类: J2EE技术
Sofa

昨天写了那个[struts工作流程分析] 感觉有点乱,今天整理了一下,当然不是我自己研究出来的,我喜欢看完技术资料后用自己所理解的意思去表述一遍,当然我有时也会原文转来。今天又增加了一个栏目《系统漏洞》,这里的漏洞就更不可能是我发现的了,都是直接转来的。博客是不是必须纯原创我才不去管它,我只关注和学习我所感兴趣的。

struts的工作原理可分为如下8步。

1.读取配置(初始化ModuleConfig对象)
Struts框架总控制器(ActionServlet)是一个Servlet,在web.xml中被配置成一个自动启动的Servlet。读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象。

2.用户请求
用户提交表单或调用URL向WEB应用程序服务器提交一个请求,请求的数据用HTTP协议上传给WEB服务器。

3.填充FormBean
(*.do请求)从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action又一个相应的ActionForm,ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样他们就可以被其它Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。

4.派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute()方法。

5.处理业务
Action一般只包含一个execute方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionFoward对象,控制器通过该ActionFoward对象来进行转发工作。

6.返回响应
Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对相对应一个具体的JSP页面或另一个Action。

7.查找响应
总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。

8.响应用户
JSP将结果展现给用户。

什么是Struts

2008.08.20 / 标签: ,,, / 分类: J2EE技术
Sofa

Struts是骨架、支柱的意思。Struts框架的目的也是提供一个实现MVC模式的应用程序骨架。
它出身显赫,来自Apache。Apache是一个著名的开源组织,其下有很多广泛应用的开源项目。我们一直在使用的Tomcat就是他们的一个子项目。Apache在Java世界具有举足轻重的地位。
基于Struts开发的应用由3类组建构成:控制器组件、模型组件和试图组件。
控制器组件包括ActionServlet,是Struts的核心控制器,还包括自定义的Action类,代表客户的一个操作,自定义的Action类继承自Struts提供的org.apache.struts.action.Action。
模型组件并不是由Struts提供的,一般由普通的接口和JavaBean充当,需要我们自己编码实现。
试图组件一般由JSP实现,还包括自定义的ActionForm类和Struts标签。自定义的ActionForm类用于封装request中的数据,Struts可以将request中的数据自动填充到ActionForm类中,以避免繁琐的request.getParameter()和类型转换代码。自定义的ActionForm类继承自Struts提供的org.apache.struts.action.ActionForm。Struts还提供了一系列自定义标签以简化页面的编码。
ActionForm在系统启动的时候加载struts-config.xml配置文件。struts-config.xml配置文件中包含与Action、ActionForm、页面转发等相关的配置信息。
可见,Struts只是一个应用程序的“半成品”,但已经约束了在其基础上构建应用程序的规则,并给我们的代码开发工作提供了便利。

为什么使用Struts

2008.08.19 / 标签: ,, / 分类: J2EE技术
Sofa

古语有云“没有绳子的世界是乱世”。JSP、Servlet和JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。在此之上,我们还需要一个规则,一个把这些技术有效的组织起来,让系统繁而不乱的规则,这就是框架。Struts应运而生,是最早的开源框架之一,而且很快成为实际标准,是当前应用最广泛的Java Web应用开发框架。
在Struts中,可以通过struts-config.xml配置文件配置Action得访问路径,还提供了ActionForm,自动获取Request中的数据,不再需要反反复复的进行request.getParameter(),然后小心翼翼的转换类型。Struts还提供了标签库,可以方便的构建页面并获得额外的便利。作为一个成熟而完整的框架,Struts几乎处处都帮我们做好了贴心安排。

无觅相关文章插件,快速提升流量