在 Struts 對 MVC / Model 2 的實現方式中,擔任Controller角色的是org.apache.struts.action.ActionServlet,它繼承自 javax.servlet.http.HttpServlet,通常會直接使用ActionServlet,在web.xml中配置相關的組態,就如同配置一般的Servlet一樣,您也可以配置一些相關的初始參數給ActionServlet使用。
在MVC/Model 2的架構中,理想上客戶端不會直接要求資源或指定請求的JSP頁面,所有客戶的請求都必須發送至Controller,由Controller決定該轉發給哪一個物件進行處理、決定該由哪一個View頁面進行顯示與回應。
(為了避免客戶直接要求JSP頁面或相關資源,您可以將JSP頁面或相關資源放到Web應用程式的/WEB-INF目錄下,讓客戶端只能透過 Controller的forward要求資源)
在Struts中,擔任Controller的是ActionServlet,所有的請求都發送給ActionServlet,對於 ActionServlet來說, doGet()會調用doPost(),所以無論請求是GET或POST在行為上都是相同的。ActionServlet藉由組態檔struts- config.xml知道如何分配物件來處理請求,這包括了org.apache.struts.action.ActionMapping、 org.apache.struts.action.ActionForm、org.apache.struts.action.Action等物件的分配,struts-config.xml是整個Struts運作的重心。
ActionServlet會將處理的控制權暫時交給Action物件,在Action中,您可以藉由一些資料傳輸物件(Data Transfer Object)、輔助類別(Helper Class)等Model來完成業務請求,Struts使用JSP/Servlet的setAttribute()和 getAttribute()方法來與View進行溝通。Action應當傳回ActionForward物件給ActionServlet,之後 ActionServlet根據 ActionForward中的資訊來進行forward或include View的動作,由View抽取Model資料並顯示處理的結果。
Struts的View部份可以是靜態網頁、JSP網頁、Struts自訂標籤,Struts自訂標籤可以與Struts的一些物件及資源檔案合作使用,也配合使用其它自訂標籤,像是JSTL、JSF等。
在Struts 1.1後新增org.apache.struts.action.RequestProcessor類別,有關於使用者請求的物件分配等動作已經大部份交由RequestProcessor來處理,下圖是ActionServlet接收到請求之後的一些主要動作,在之後的各主題說明中,您可以藉由這張圖您將可以瞭解struts-config.xml的組態設定意義,以及Struts運作的方式:
分享到:
相关推荐
在深入探讨Struts2的工作流程之前,我们先了解一下MVC模式的基本概念。MVC模式将应用逻辑分隔为三个部分:模型(Model)处理业务逻辑,视图(View)负责展示数据,控制器(Controller)协调用户输入和模型间的交互。...
在深入理解Struts2的工作流程之前,我们需要先了解一些基本概念。 1. **MVC模式**: MVC模式将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。模型负责业务逻辑,视图负责显示...
本压缩包文件“struts1工作流程.rar”可能包含了一份关于Struts1框架工作流程的详细文档“struts1工作流程.doc”。下面将详细介绍Struts1的工作流程及其相关知识点。 1. **MVC架构**: Struts1基于MVC设计模式,...
这些配置是理解程序工作流程的关键。 3. **Interceptor拦截器**:拦截器允许在Action执行前后插入自定义逻辑,如日志、权限检查等。在项目中,可能会看到如`params`、`validation`、`exception`等内置拦截器的使用...
我们已在前面学习了Servlet 数据库应用,有了JSP、Servlet 、JDBC的一些知识、理解和...2. Struts2基本流程 3. 了解核心控制器FilterDispatcher及在web.xml中的配置 4. 了解业务控制器Action及在struts.xml中的配置
在深入理解Struts的工作原理之前,我们先来简单回顾一下MVC模式的基本概念: **Model(模型)**:这是应用程序的核心业务逻辑,通常由Java Beans或Enterprise JavaBeans (EJBs)实现,它们处理数据和业务规则。 **...
Struts通过拦截用户请求并控制应用程序的流程来运作。当用户发起HTTP请求时,ActionServlet作为Controller接收请求,根据配置文件(Struts-config.xml)来决定调用哪个Action类,Action类处理业务逻辑后,将结果返回...
Struts2是一个非常著名的开源Java框架,主要用于构建企业级的Web应用程序。它的核心设计目标是提供一个可扩展的、清晰的、模型驱动的MVC(Model-View-Controller)架构,帮助开发者创建更加灵活、可维护性更强的Web...
这张流程图 深刻的描述了 struts2的执行流程 帮助了解Struts2
Struts1 的工作流程可以分为以下七步: 1. 检索和用户请求匹配的 ActionMapping 实例,如果不存在就返回请求路径无效信息。 2. 如果 ActionForm 实例不存在,就创建一个 ActionForm 对象,并把客户提交的表单数据...
它定义了整个框架的工作流程,如请求的处理、结果的返回以及拦截器的调用。 2. **Freemarker或JSP Taglib**:Struts2支持使用Freemarker或JSP作为视图技术。这些库提供了模板语言和标签,用于生成动态HTML内容。 3...
Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展、模块化且易于管理的MVC(模型-视图-控制器)应用。在开发基于Struts2的应用时,一些核心的JAR库是必不可少的。以下是Struts2需要的基本JAR包的详细...
而“Struts基本jar包”则包含了实现Struts框架所需的核心组件和依赖库。 1. **xwork-core-2.2.1.1.jar**:这是Struts 2框架的核心组件之一,包含了Action和Result的实现,以及ActionContext和ValueStack等核心概念...
本文将通过使用Servlet来模拟Struts1的工作流程,深入理解其核心机制。 首先,让我们探讨Struts1的基本架构。Struts1框架的核心组件包括ActionServlet、ActionForm、Action、Tiles以及配置文件(struts-config.xml...
在Java Web开发中,Struts2被广泛用于构建企业级应用,提供了强大的控制层,使得开发者能够更有效地管理请求和响应流程。Struts2.2.3的"需要11个基本包"是指为了成功地配置和运行Struts2框架,开发者通常需要引入一...
通过分析这些文件,你可以更深入地理解Struts框架的工作原理。 总的来说,Struts框架提供了一种规范化的Web应用开发模式,通过解耦业务逻辑、控制流程和表现层,使得开发更加高效。在实际应用中,开发者可以根据...
在“struts2基本jar包”中,包含了一系列核心库和其他依赖的jar包,它们是构建基于Struts2的应用程序所必需的。这些jar包提供了框架的核心功能,如Action类、拦截器、结果类型、配置管理等。以下是对主要jar包及其...
"struts2 基本jar包"是构建基于Struts2框架的应用程序所必需的核心组件集合。这些jar文件包含了运行Struts2应用程序的所有核心类和依赖库,确保开发者可以快速地搭建和运行项目。 首先,让我们来看看"lib"目录下的...
Struts1.2 是一款经典的Java Web开发框架,它的核心在于提供了一种MVC(Model-View-Controller)架构模式的实现。以下是Struts1.2的基本控制流程...通过以上详细阐述,相信你已经对Struts1.2的基本流程有了清晰的认识。