`

Struts初步认识

阅读更多
Struts初步认识


Struts是一个简化MVC开发的非常优秀的Web应用框架,主要采用JSP、Servlet等技术实现。应用框架为开发者提供可重用的基础架构,为业务逻辑开发提供支持,减少底层代码工作量,从而减少开发Web应用系统的时间,提高开发效率。Struts应用框架主要包括4个部分:

    1.模型(Model)。模型可以分为两个部分:系统的内部状态和业务逻辑实现。在Struts中Model实质上是一个Action类,也是一个JavaBean.

    2.视图(View)。View由与控制器Servlet配合工作的JSP定制标签库构成,可简化应用系统的界面开发。

    3.控制器(Controller)。本质上是一个Servlet,将客户端请求转发到相应的Action类,完成映射过程。

    4.XML文件解析工具包。Struts用XML来描述如何自动产生一些JavaBean的属性,西外Struts还可以利用XML实现多国语言支持等功能。

    Struts包含有很多组件,核心组件有4个,分别是ActionServlet组件、ActionMapping组件、ActionForm组件以及Action组件。

    1.ActionServlet组件:控制器

    ActionServlet组件在Struts框架中扮演的角色是控制器,其继承自javax.servlet.HttpServlet类。控制器ActionServlet组件负责将HTTP的客户请求信息封装后,根据配置文件的定义,再转发到适当的处理器。根据Servlet的标准,所有的Servlet必须再Web配置文件(Web.xml)中声明,因而ActionServlet也必须再Web Application配置文件(Web.xml)中定义。

    2.ActionMapping组件:存储映射信息

    将特定请求映射到特定Action的相关信息存储在ActionMapping组件中,ActionServlet将ActionMapping传送到Action类的perform()函数,Action将使用ActionMapping的findForward()函数,此函数返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个NULL值。

    3.AcionForm组件:保存请求的参数

    ActionServlet使用ActionForm来保存请求的参数。ActionForm实质上是一个JavaBean,这些Bean的属性名称与HTTP请求参数中的名称相对应。控制器将请求参数传递到ActionForm的实例,然后将该实例传送到Action类。ActionForm是一个抽象类,必须通过继承来实现自己的具体类。ActionForm首先要进行初始化,然后调用validate函数,检查请求参数的正确性和有效性。如果通validate函数的验证,ActionForm将被作为参数传给具体Action类的execute函数以供使用。

    4.Action组件:将请求与业务逻辑分开

    Action组件的功能类似于客户请求和业务逻辑处理之间的一个适配器,从而将请求与业务逻辑分开。分离以后可以使客户请求和Action类之间实现多个点对点的映射,此外Action组件还提供其他辅助功能,例如:认证、日志和数据验证等,具体的功能一般都在execute()函数中完成。

    ActionServlet类作为中心Servelt将负责处理所有到来的用户请求,也就是说所有用户的请求首先到达的就是ActionServlet类。当ActionServlet接收到一个用户请求时,将执行如下流程:

    1.检查和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的错误信息。

    2.如果为ActionMapping配置了form,则获取相应的范围内的ActionForm实例。如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。

    3.根据ActionMapping配置信息决定时候需要验证表单。如果需要验证,就调用ActionFrom的validate()方法。

    4.如果ActionForm的validate()方法返回null,或者返回一个不包含任何ActionMessage的ActionErrors对象,就表明表单验证成功,继续执行下一步。否则返回input属性指定的页面,并向用户显示ActionErrors集合中的错误信息。

    5.ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,则先创建这个实例,然后调用Action的execute()方法。

    6.Action的execute()方法返回一个ActionForward对象,ActionServlet将请求转发到这个ActionForward对象指定的组件,通常是一个JSP视图或是其他的Action.

    7.如果ActionForward对象指向一个JSP视图组件,则将JSP组件生成的动态网页返回个用户;如果ActionForward对象指定的仍然是一个Action,则又从第1步重新开始执行。


分享到:
评论

相关推荐

    struts2(1-7)源码 struts2学习入门 源码学习

    struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter ...

    struts示例程序

    struts示例程序。对struts1.x的初步认识。

    基于MVC设计模式的STRUTS 应用程序框架ppt版

    适用于struts初级学者对Struts的全面概括认识,对它有一个初步简单的认识。

    跟我学javaweb全套ppt

    Java Web开发是目前最流行、使用最广泛的网站开发技术。...《跟我学Java Web》适合广大Java Web初学者、初步掌握Java技术的读者,想深入学习Struts2、SSH框架的开发者,以及从事Java Web开发工作的技术人员。

    JAVA WEB典型模块与项目实战大全

    1.4 核心框架初步认识  1.5 小结  第2章 myedipse开发工具对各种框架的支持  2.1 使用jsp的两种模式  2.2 struts框架的实现  2.3 hibernate框架的实现  2.4 jpa框架的实现  2.5 spring框架的实现  ...

    跟我学Java_Web源代码

    跟我学Java_Web配套源代码,全书全!另外: Java Web开发是目前最...《跟我学Java Web》适合广大Java Web初学者、初步掌握Java技术的读者,想深入学习Struts2、SSH框架的开发者,以及从事Java Web开发工作的技术人员。

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    5.2.1 初步认识Servlet 5.2.2 Servlet与JSP的区别 5.3 为我所用——Servlet技术开发 5.3.1 Servlet在JavaEE中的结构体系 5.3.2 Servlet核心API 5.3.3 创建第一个Servlet对象 5.3.4 Servlet配置解析 5.3.5 使用...

    a_simpleSSH.zip

    这是一个非常简单的SSH框架,里面的代码在tomcat部署下可以直接运行看到结果,功能是显示学生列表的信息,主要是帮助新手熟悉一下大致的框架,对ssh有一个初步的认识。

    开源框架 Spring Gossip

    认识 Spring 来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC?什么叫作 DI? 简介 Spring Inversion of Control Dependency Injection <br> 核心容器 Spring 核心容器实作...

    本科毕业设计开题报告(计算机协会信息管理系统的设计与实现V5)

    一、本课题的目的和意义 ...选题的创新点:该选题采用的均是计算机成熟的技术,在计算机技术方面并没有体现创新点,但是通过完成该毕业设计,可以使得自己对计算机软件开发有更深的认识,积极培养自己的创新意识。

Global site tag (gtag.js) - Google Analytics