Struts框架结构
一、Struts的工作流程
图中反映出的概念:
控制器:用于接收客户端发来的请求,按照struts-congfig.xml文件中的配置分配工作。
逻辑处理单元:用客户端的请求数据初始化表单属性,即实例化表单数据,再根据事务逻辑完成具体的处理工作。
数据模型:泛指用于存储或处理数据的Bean,但这里特指Struts中用来存储客户端请求数据的Bean,即ActionForm类。
视图URL:当处理单元完成任务后,会给控制器返回一个ActionForward对象,控制器就能根据它找到对应视图的URL,将结果返回给客户端浏览器。
二、一个工作要点——控制器的工作方式
与前面所讲的MVC设计不同的是:控制器有且仅有一个,归Struts Web所共有;当不同的请求到达时,由这个控制器再把任务分配给具体的业务处理单元,所以业务单元是多个且具有针对性的。在后面的设计中,处理任务转移到了对逻辑处理单元的设计而不是对控制器的设计。
三、编程要点——Struts的组件结构
⑴ 基本组件包 :查看教材讲解
⑵ 几个重要的核心类:
u ActionServlet:继承于
javax.servlet.http.HttpServlet类,在Struts中扮演控制器的角色。它可以根据配置文件的描述将任务提交到适当的处理器,在web.xml文件中可以看到对它的声明。
uAction:协助ActionServlet完成业务操作,实现了请求与业务逻辑的分离。通常的做法是:定义用户类继承于Action类,重写这个类的execute()方法,在execute()方法中编程完成处理逻辑。struts-config.xml配置文件对项目中所有的Action组件进行了描述,供控制器ActionServlet进行选择和任务分配。
uActionForm:其主要功能是为Action的操作提供与客户表单相映射的数据。通常的做法是:定义用户类继承于ActionForm类,以Bean的形式定义客户端所提交的各种数据。设计Action的时候,往往将它与某个ActionForm对象关联起来,以便通过getXXX()方法提取用户数据。设计者还可以重写其validate()方法以便对用户数据进行校验。
u ActionMapping:代表当前Action的配置信息。该对象是Struts依据配置文件创建的,其各个属性在struts-config.xml文件中进行配置。
u ActionForward:对应URL地址,其它组件可以通过ActionForward的名称找到其对应的URL地址,并把控制转移到该URL。