`

struts学习笔记(三)——struts2基本流程

阅读更多
struts2的基本流程
struts2框架由三部分组成:核心控制器FilterDispatcher(struts2框架提供)、业务控制器和用户实现的业务逻辑组件(后两者由用户实现)
1.核心控制器FilterDispatcher
FilterDispatcher是struts2框架的核心控制器,该控制器作为一个filter运行在web应用中,负责拦截所有的用户请求,过滤用户请求,如果请求以action结尾,该请求将被转入struts2框架处理。
struts2框架获得*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件。
struts2应用中的action都被定义在struts.xml文件中,文件中定义了action的name属性和class属性,name决定该action处理哪个用户请求,而class属性决定了该action的实现类。
struts2用于处理用户请求的action实例,并不是用户实现的业务控制器,而是action代理——因为用户实现的业务控制器并没有与servletAPI耦合,显然无法处理用户请求。struts2框架提供的拦截器链负责将HttpServletRequest请求中的请求参数解析出来,传入action中,并调用action中的execute方法来处理用户请求。下图为处理模型:



从上图能看出,用户实现的action类仅仅是struts2的action代理的代理目标。用户实现的业务控制器action则包含了对用户请求的处理,用户的请求数据包含在HttpServletRequest对象中,而用户的action类无需访问HttpServletRequest对象。拦截器负责将HttpServletRequest里的请求信息解析出来,传给业务逻辑组件action实例。

2.业务控制器
action中通常含有一个execute方法,根据处理结果不同,excute返回不同字符串——每个字符串对应一个视图名
完成业务控制器的开发后,还需要配置struts2的action,需要配置action的如下三个部分:1)action所处理的URL,2)action组件所对应的实现类,3)action里包含的逻辑视图和物理资源之间的对应关系。

3.struts2的模型组件
模型组件已经超出了MVC框架的覆盖范围。对于struts2框架而言,通常没有为模型组件的实现提供太多的帮助。



通常MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,用户请求最终由模型组件负责处理。业务控制器只是中间负责调度的调度器。这也是action称为控制器的原因。
当控制器需要获取业务逻辑组件实例时,通常是通过工厂模式来获得业务逻辑组件的实例;或者利用其他Ioc容器(如Spring容器)来管理业务逻辑组件实例。
4.struts2视图组件
struts1只能用jsp作为视图技术,struts2允许使用其他模版技术。
在struts.xml中配置action时,需要指定name属性、class属性和系列result子元素,每个result子元素指定一个逻辑视图与物理视图之间的映射。
result子元素中,若不指定type属性,默认使用JSP作为视图资源。
若需要在struts2中使用其他视图技术,则可以在配置result子元素时,指定相应的type属性既可。

5.struts2的运行流程
struts2其实就是webwork2.2的升级,因此struts2的运行流程和webwork的运行流程完全相同,下图是webwork的运行流程


  • 大小: 11.5 KB
  • 大小: 7.1 KB
分享到:
评论

相关推荐

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    Struts2自学笔记——Struts2的文件上传

    这篇自学笔记将深入探讨Struts2的文件上传机制。 1. **文件上传原理** 文件上传是基于HTTP协议的POST请求实现的。在HTML表单中,通过`<input type="file" />`元素让用户选择本地文件。当用户提交表单时,浏览器会...

    struts2学习笔记黑马程序员

    ### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...

    Struts2学习笔记

    在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建一个简单的Hello World应用程序。 在Struts1.x中,Action是处理用户请求的核心,它需要继承`org.apache.struts.action.Action`...

    [摘]Struts 学习笔记之ActionForm

    博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...

    struts2学习笔记!

    ### Struts2学习笔记 #### 一、Struts2配置文件详解 在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml <!DOCTYPE struts PUBLIC "-//Apache ...

    【张冰Struts2学习笔记】0102_第一个Struts2实例

    这个简单的实例展示了Struts2的基本流程:请求被Struts2 Filter拦截,根据struts.xml配置找到对应的Action执行,Action执行完毕后返回一个结果,该结果决定视图的渲染。这就是Struts2的核心思想——分离业务逻辑和...

    struts2学习笔记一

    当用户发起请求时,Struts2的前端控制器——`StrutsPrepareAndExecuteFilter`过滤器首先捕获请求。这个Filter会处理所有请求的公共部分,如初始化、编码转换等,并根据`struts.xml`配置文件将请求路由到相应的...

    Struts 1.3.8 学习笔记(三)

    这个版本的学习笔记主要集中在 Struts 框架的核心概念、架构和实际应用上。Struts 1 提供了一个MVC(Model-View-Controller)设计模式的实现,帮助开发者组织应用程序的逻辑,提高代码的可维护性和可扩展性。 在...

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    SSH是Java开发中广泛使用的三大框架——Struts2、Hibernate和Spring的缩写。这三大框架结合使用,能够构建高效、灵活的企业级Web应用程序。现在,让我们深入探讨这些框架的知识点。 **Struts2笔记** Struts2是MVC...

    struts笔记

    #### 三、Struts 2中的FileUpload拦截器 Struts 2框架通过FileUpload拦截器实现了文件上传的功能。该拦截器主要负责解析HTTP请求中的multipart/form-data格式的数据,并将其转换为可操作的对象。 - **FileUpload...

    struts2校验器与校验框架精彩学习笔记

    本学习笔记主要探讨了Struts2中的校验器(Validator)和校验框架,帮助开发者理解如何有效地实现数据验证,确保应用程序的健壮性。 首先,我们来看Struts2的校验框架。这个框架提供了强大的功能,可以对用户输入...

    Java EE 相关资料(Struts中文手册、Struts API、Hibernate 学习笔记、Hibernate API文档)

    "Hibernate学习笔记.rar"可能包含关于Hibernate的基本概念、配置、实体类的创建、映射文件的编写、CRUD操作、查询语言HQL和Criteria API的使用等内容,这些都是理解和掌握Hibernate的关键。 "Hibernate3.2官方中文...

    struts2的学习笔记+测试源代码

    本文将深入探讨Struts2中的核心概念——拦截器(Interceptor),并结合提供的测试源代码进行讲解。 拦截器在Struts2框架中扮演着至关重要的角色,它们是AOP(面向切面编程)的一个实例,允许开发者在Action调用前后...

    Struts入门笔记+源代码(登陆系统)

    7. **模型驱动(ModelDriven)**:Struts2提供了一种模型驱动的编程方式,可以将Action类和Form Bean解耦,Action类只需关注业务逻辑,而模型数据由单独的Bean管理。 学习这个资源,你将会了解如何在MYEclipse这样...

    SSH学习笔记3 SSH学习笔记3

    SSH学习笔记3主要聚焦于三个Java企业级开发框架——STRUTS、SPRING和HIBERNATE的集成与应用。这三个框架是Java后端开发中非常重要的组件,它们各自负责不同的层面,共同构建了一个强大的MVC(Model-View-Controller...

    web笔记 —— smartupload

    标题中的“web笔记 —— smartupload”指的是一个关于Web开发中的文件上传技术的笔记,主要聚焦于SmartUpload组件。SmartUpload是一款强大的Java上传组件,它为Web应用提供了方便的文件上传功能,支持多文件上传、...

    Struts2五种数据封装Demo

    在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...

    struts2资料可做参考

    "struts2学习笔记(一) ——struts2与spring2_0的集成 - 一嗑立扑死 - CSDN博客.mht"可能详细讨论了如何将Struts2与Spring 2.0版本集成,包括Action的配置和依赖注入的使用。而"Struts2与Spring的结合 - Naviler的...

Global site tag (gtag.js) - Google Analytics