`

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入门最简单例子

    Struts2是一个强大的MVC...通过这个简单的案例,初学者可以对Struts2有初步的认识,为进一步学习和掌握Struts2的高级特性和最佳实践奠定基础。在实际开发中,你还可以探索更多的内容,如文件上传、国际化、异常处理等。

    struts2框架2016版资料day01

    这个"struts2框架2016版资料day01"涵盖了Struts2的基础知识,包括框架的基本架构、核心概念和初步配置。传智播客作为知名的IT教育机构,其课程内容通常严谨且实用,适合初学者快速入门。 1. **Struts2框架概述**:...

    struts入门练习

    不过,这已经足够让初学者建立起对Struts框架的初步认识。 在文件名"loginStr"中,可以推测这是一个与登录相关的Struts Action。在实际的项目中,这个Action可能负责接收登录表单的请求,验证用户名和密码,然后...

    使用struts1实现简单用户登陆流程

    通过这个简单的登录流程,我们可以对Struts1的架构有一个初步认识。它通过分离业务逻辑、用户界面和数据管理,使得Web应用的开发更加模块化和可维护。在实际项目中,Struts1还可以与其他技术(如Hibernate进行持久层...

    三分钟教你学会struts

    本教程将帮助你快速掌握Struts的基础知识和高级技巧,让你在三分钟内对Struts有一个初步的认识。 **1. Struts框架概述** Struts是一个开源的、基于MVC(Model-View-Controller)设计模式的Web应用框架,它主要负责...

    Struts2 In Action

    通过本章的学习,读者将对Struts2有一个初步的认识,并了解它为什么被视为现代Web开发的最佳选择之一。 - **关键知识点**: - Struts2的设计理念与架构 - Struts2与其他框架的对比 - Struts2的优点和应用场景 -...

    struts2权威指南--前三章

    尽管只有前三章,但这已经涵盖了Struts2的基础架构和核心概念,足以让初学者建立起对框架的初步认识。学习这部分内容,你可以了解如何构建基本的Action,掌握Struts2的配置机制,理解请求处理流程,并能够实现简单的...

    struts入门(一)

    通过以上步骤,你可以对Struts有初步的认识。在深入学习的过程中,还可以探索Struts的拦截器、插件系统、自定义标签等功能,以及如何与其他技术(如Hibernate、Spring等)集成,提升你的Web开发技能。同时,不要忘记...

    struts2教程.doc

    第1章介绍了Struts2的基础知识,让你对这个框架有一个初步的认识。Struts2是Apache软件基金会的一个开源项目,它是基于Apache Struts 1.x和WebWork框架的合并产物,提供了更加灵活和强大的功能,旨在简化Java web...

    struts2入门(一)

    Struts2是一个强大且成熟的Java Web框架,通过本文的介绍,你应该对Struts2有了初步的认识。实践是掌握技术的最好方式,动手创建一个Struts2应用,你会发现它的灵活性和易用性。在后续的学习中,深入研究源码和工具...

    struts2入门小实例

    Struts2是一个强大的MVC(Model-View-...通过这个简单的Struts2入门实例,你可以对MVC模式和Struts2的工作原理有初步的认识。继续深入实践,你会发现Struts2是一个强大而灵活的工具,能帮助你高效地开发Java Web应用。

    struts开发的一个简单的银行系统

    Struts是Java Web开发中的一款经典MVC框架,由Apache软件基金会维护,它极大地简化了构建基于J2EE平台的Web应用的过程。...同时,对于实际的银行系统开发,这个项目也能提供对安全、事务管理等高级主题的初步认识。

    Struts入门教程

    Struts 是一个开源的Java Web框架,由Apache软件基金会维护,它主要被用来构建基于MVC(Model-View-Controller)设计模式的Web...通过以上介绍,相信你对Struts已经有了初步的认识,接下来就是动手实践,加深理解了。

    1_Struts2入门与配置

    通过以上介绍,你应该对Struts2有了初步的认识。在深入学习和实践中,你将掌握更多关于Struts2的高级特性,如国际化、动态方法调用、自定义拦截器等,从而提升你的Java web开发能力。对于初学者,可以参考给定的博文...

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 ...通过这些知识点,学习者可以对Struts2有一个初步的认识,并且开始上手进行实际的框架应用开发。同时,对Struts2的结构和配置有了具体的了解,为后续深入学习打下良好的基础。

    Struts2--5.OGNL

    Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它极大地简化了构建Java EE ...通过以上内容,你应该对Struts2框架中的OGNL有了初步的认识,但要完全掌握其用法,还需要进一步实践和探索。

Global site tag (gtag.js) - Google Analytics