|
图片:

Struts实质上就是在JSP Model2的基础上实现的一个MVC构架。Struts作为一个开放原代码的应用框架,在最近几年得到了飞速的发展,在JSP Web应用开发中应用得非常广泛。它已经成为JSP Web应用框架的事实上的标准。
在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由AcionServlet和Action来实现,表视层(视图)由一组JSP文件构成
1、视图 视图其实就是一组JSP文件。在这些文件中没有业务逻辑,也没有模型信息,只有标签(包括标准的JSP标签、Struts标签、自定义标签。 此外,通常也可以把Struts框架中的ActionForm Bean也划分到视图模块中,它主要用于验证HTML表单数据以及重置属性值。还可以用于在视图和控制器之间传递表单数据。 2、模型 模型主要是进行业务逻辑,通常由JavaBean或EJB组件实现。 3、控制器 控制器由ActionSerlet类和Action类来实现。其中ActionServlet类是Struts框架中的核心组件。它在MVC模型中扮演中央控制器的角色。ActionServlet负责接收HTTP请求信息,根据配置文件(struts-config.xml)的配置信息,把请求转发给适当的Action对象。 Action负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。
Struts的工作流程 在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息。 当ActionServlet接收到一个客户请求时,执行如下流程 (1)检索和用户请求匹配的ActionMapping实例,如果不存在,返回用户请求路径无效信息。 (2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中 (3)根据配置信息决定是否需要进行表彰验证。如果需要,就调用ActionForm的validate()方法进行表单验证。 (4)如果ActionForm的validate()方法返回Null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。 (5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例。然后调用Action的execute()方法。 (6)Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP的组件。 (7)ActionForward对象指向的JSP组件生成动态网页,返回给客户。 对于以上流程,如果ActionForm的validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含用户提交表单的JSP组件。 Struts响应用户请求的工作流程:见上图
|
一共有 1 条评论
怎么做比较合理。我们做的是一个学校的办公自动化,需要统计一些信息。涉及到多值查
询和模糊查询。希望多多指点。