03.Struts核心组件介绍
Struts核心组件及运行机制
如果<action>中的validate属性为true,调 用FormBean的validatte()方法
创建ActionForm
创建一个与HTML中表单一一对应的 JavaBean;
JavaBean继承类; 重写reset()方法; 重写validate()方法;
Validate()方法
回顾
什么是MVC? Struts是怎么去实现MVC的? Struts基本组件有那些? 基本组件之间有什么关系? Struts标签的运行机制是什么? Struts标签库的分类; 什么时候用什么标签;
重点
了解Struts的核心组件及运行机制 掌握如果扩展ActionServlet和RequestProcessor 了解DTO对象 掌握ActionForm的配置和使用; 掌握ActionForm与Action的邦定; 掌握ActionForm的数据验证; 掌握ActionForm的动态现实;
是否适合程序的要求; 返回一个ActionErrors对象; ActionErrors对象是一个MAP集合,存放的全都是
ActionMessage对象; ActionMessage对象的错误提示配合Resource bundle文
件使用; 如果ActionErrors集合里没有ActionMessage对象,则通过
表示层
控制层
逻辑层
数据库
对应的实现组件
与控制器组件相关的类主要包括: – ActionServlet:Struts架构的中央控制器,用于接受浏览器客户端用 户请求以及状态改变,并依据处理结果选择表示层不同视图的重定 向。 – RequestProcessor:包含了Struts控制器在处理servlet请求时所遵循的 控制逻辑。 – Action:控制器的一部分,用于模型交互,执行状态改变或状态查询, 以及告诉ActionServlet 下一个选择的视图。 – ActionForm:用于保存于表单数据相关的状态数据的改变。 – ActionMapping:用于控制在状态数据改变后的事件处理的方式。 – ActionForward:用户指向或者视图选择。
Struts框架详细分析
Struts框架详细分析Struts框架是一个开源的Java Web应用程序框架,用于构建基于MVC(Model-View-Controller)设计模式的Web应用程序。
它提供了一种结构化的方式来组织和管理Web应用程序的代码,使得开发人员可以更加高效地开发和维护应用程序。
本文将详细分析Struts框架的各个组成部分以及其工作原理。
一、框架概述Struts框架的核心思想是将应用程序分解为不同的层次:模型层(Model)、视图层(View)和控制层(Controller)。
模型层负责处理业务逻辑和数据存取,视图层负责展示用户界面,控制层负责接收用户的请求并调度合适的模型层处理。
通过这种分层的方式,Struts框架可以实现代码的解耦和重用。
二、组成部分1. 控制器(Controller)控制器是Struts框架的核心组件,负责接收用户请求并将其调度到合适的处理模块。
在Struts框架中,控制器通常由一个Servlet实现,称为ActionServlet。
ActionServlet会根据用户请求中的URL路径选择合适的Action类来处理请求。
2. 动作类(Action)动作类是处理用户请求的核心业务逻辑单元,它负责与模型层进行交互,并根据请求的内容进行相应的处理。
Struts框架提供了一个基本的Action类,称为ActionSupport,开发人员可以继承该类并实现自己的业务逻辑。
3. 视图(View)视图用于展示用户界面,通常是一个JSP页面。
在Struts框架中,视图可以通过标签库和表达式语言与模型层进行交互,动态地展示数据和接收用户输入。
4. 模型(Model)模型层主要负责处理业务逻辑和数据存取。
在Struts框架中,开发人员可以选择使用传统的JavaBean作为模型层,也可以使用更高级的框架,如Hibernate或MyBatis。
5. 配置文件Struts框架使用配置文件来管理应用程序的各个组件之间的关系。
第4讲 Struts框架的核心组件
(1)web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app> <!-- 标准actionServlet配置--> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <!-- 数字越低表明启动越早--> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern> *.do </url-pattern> </servlet-mapping> <!--Web应用首页设置--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- struts标签库相关配置--> <taglib> <taglib-uri>/WEB-INF/tlds/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location> </taglib> </web-app>
struts的工作原理
struts的工作原理Struts是一个基于Java技术的开源Web应用框架,它的工作原理主要包括以下几个方面:1. 请求处理流程:当客户端发送一个HTTP请求时,Struts框架会先由Servlet容器接收请求并将其传递给Struts的核心控制器DispatcherServlet。
DispatcherServlet负责将请求分发给相应的Action类进行处理。
2. 控制器:Struts的控制器是一个Servlet,它通过配置文件(struts-config.xml)定义了请求的处理方式。
在接收到请求后,控制器根据配置文件中的映射关系,找到对应的Action,并将请求转发给该Action处理。
3. Action处理:Action是Struts中的核心组件,它是一个POJO(Plain Old Java Object),负责接收请求的数据并调用业务逻辑处理。
Action可以通过实现Action接口或继承ActionSupport类来定义相应的处理方法。
4. 视图解析:在Action处理完成后,会返回一个逻辑视图名(logical view name),它表示了请求处理的结果。
Struts框架将根据视图配置文件(struts-config.xml)中的映射关系,找到对应的视图解析器(View Resolver)来解析逻辑视图名,并生成具体的视图页面。
5. 视图渲染:视图渲染是将模型数据填充到具体的视图页面中的过程。
Struts框架支持多种视图技术,如JSP、FreeMarker等。
视图模板通常包含了动态生成的HTML代码以及与模型数据相关的标签或脚本。
6. 响应输出:最后,Struts框架将渲染好的视图页面作为HTTP响应返回给客户端浏览器,并结束请求处理流程。
总结起来,Struts框架的工作原理是通过控制器分发请求给对应的Action进行处理,再将处理结果交给视图解析器解析并渲染成最终的视图页面,最后将视图页面作为HTTP响应返回给客户端。
struts的工作原理
struts的工作原理Struts是一个基于Java的开源Web应用程序框架,它遵循了MVC(Model-View-Controller)设计模式,用于简化Web应用程序的开辟过程。
Struts的工作原理涉及到请求的处理、控制流程以及数据流动等方面。
下面将详细介绍Struts的工作原理。
1. 请求处理:当用户在浏览器中输入URL并发送请求时,请求首先到达Web服务器。
Web服务器根据URL的映射规则将请求转发给Struts框架。
2. 控制流程:Struts框架通过一个核心控制器(Controller)来管理请求的处理流程。
核心控制器是一个Servlet,它负责接收请求并将其分发给相应的Action处理。
3. Action处理:Action是Struts框架的核心组件之一,负责处理具体的业务逻辑。
每一个Action对应一个特定的请求,它接收请求参数、执行相应的业务逻辑,并返回结果。
4. 数据流动:在Struts框架中,数据的流动遵循MVC设计模式。
当请求到达Action时,Action会根据请求参数获取所需的数据,并将其存储在一个称为ActionForm的JavaBean中。
5. 视图呈现:视图(View)负责将处理结果展示给用户。
在Struts框架中,通常使用JSP (JavaServer Pages)作为视图技术。
Action会将处理结果传递给JSP,然后JSP负责将结果呈现给用户。
6. 结果返回:在Action处理完成后,它会返回一个结果对象给核心控制器。
结果对象包含了下一步要执行的操作,比如跳转到另一个页面或者返回错误信息。
7. 响应生成:核心控制器根据结果对象中的指示,生成相应的响应并返回给Web服务器。
Web服务器将响应发送给浏览器,最终用户可以看到处理结果。
总结:Struts框架的工作原理可以概括为:用户发送请求到Web服务器,Web服务器将请求转发给Struts框架的核心控制器,核心控制器将请求分发给相应的Action进行处理,Action处理完成后将结果返回给核心控制器,核心控制器根据结果生成响应并返回给Web服务器,最终用户可以看到处理结果。
第3章 Struts核心组件介绍
Proprietary and Confidential Information of Longshine Technology
Thank You
朗 新 科 技 日开天霁,朗而新之
中国
Proprietary and Confidential Information of Longshine Technology
逻辑错误在Action类中的execute()方法中处理
17
Proprietary and Confidential Information of Longshine Technology
四、ActionForm类及异常处理
•ActionErrors类和ActionError类 Struts框架中包含两个非常重要的类,一个是ActionErrors 类一个是ActionError类,两个类的关系是继承关系
4
Proprietary and Confidential Information of Longshine Technology
一、控制器组件
ActionServlet类 Struts框架中的ActionServlet只会产生一个对象,由他来 接受所有客户的请求信息,在web.xml中做如下配置: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </sevlet-mapping>
18
Proprietary and Confidential Information of Longshine Technology
struts框架详细介绍
struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。
它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。
下面是关于Struts框架的详细介绍。
1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。
- Model层负责处理数据和业务逻辑。
在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。
- View层负责展示数据和用户界面。
Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。
- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。
Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
- Action类:实现了业务逻辑的处理,接收请求和返回结果。
开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。
- ActionForm:用于封装请求参数并传递给Action类进行处理。
ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。
- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。
- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。
Struts教程
Struts教程本教程将介绍Struts的基本概念和核心组件,以及如何使用Struts开发Web应用程序。
一、Struts概述1. 模型(Model):模型表示应用程序的数据和业务逻辑。
在Struts中,模型通常由Java类组成,用于处理数据操作和业务逻辑的实现。
2. 视图(View):视图是用户界面的呈现,通常是JSP(JavaServer Pages)文件。
它负责将数据呈现给用户,并处理用户输入。
3. 控制器(Controller):控制器负责处理用户请求,并将其分派给适当的模型和视图。
在Struts中,控制器由Action类实现,它根据请求的URL路径和参数执行相应的业务逻辑。
二、Struts的基本原理1.客户端发送HTTP请求到服务器。
2. 服务器的Servlet容器接收到请求,并将其分派给Struts的ActionServlet。
3. ActionServlet根据请求的URL路径找到相应的Action类。
4. Action类执行业务逻辑,并将业务结果存储在模型中。
5. Action类调用适当的视图呈现模型数据。
6.视图生成HTML页面并将其返回给客户端。
三、Struts的核心组件1. Action:Action是一个Java类,用于处理用户请求和执行业务逻辑。
它包含了不同的方法,如初始化、数据校验和处理逻辑等。
2. ActionForm:ActionForm是一个JavaBean,用于封装和验证用户输入的数据。
它通常与JSP页面的表单相对应,并且可以通过XML配置文件进行验证。
3. ActionMapping:ActionMapping用于将URL路径和参数映射到正确的Action类。
通过配置XML文件,开发人员可以指定不同URL路径的映射关系。
4. ActionServlet:ActionServlet是整个框架的核心控制器,负责接收客户端请求并将其分派给正确的Action类。
5. Struts配置文件:Struts配置文件是一个XML文件,用于配置整个应用程序的所有映射关系和其他设置。
struts的工作原理
struts的工作原理Struts是一个基于Java的开源Web应用程序框架,它被广泛应用于构建企业级Java Web应用程序。
Struts框架采用了MVC(Model-View-Controller)的设计模式,以帮助开发人员更好地组织和管理Web应用程序的各个组件。
Struts的工作原理可以简要概括为以下几个步骤:1. 请求的接收和处理:当用户在浏览器中访问Struts应用程序时,首先会由Servlet容器(如Tomcat)接收到HTTP请求。
Servlet容器会将请求发送给Struts的前端控制器DispatcherServlet。
2. 前端控制器的处理:DispatcherServlet是Struts框架的核心组件,它负责接收并处理所有的请求。
DispatcherServlet会根据请求的URL和配置文件中的映射关系,将请求分发给相应的Action类进行处理。
3. Action类的执行:Action类是Struts框架中负责处理具体业务逻辑的组件。
当DispatcherServlet将请求分发给对应的Action类时,Action类会根据请求中的参数和数据,执行相应的业务逻辑操作。
4. 数据的处理和封装:在Action类中,可以通过使用FormBean将请求中的数据进行处理和封装。
FormBean是一个JavaBean,用于封装用户提交的表单数据。
Action类可以从FormBean中获取用户提交的数据,并进行相应的数据处理和验证。
5. 视图的渲染:在Action类完成业务逻辑的处理后,通常会将处理结果封装在一个ActionForm中,并将控制权交给视图组件进行渲染。
视图组件通常是一个JSP页面,它负责将ActionForm中的数据展示给用户。
6. 结果的返回:视图组件将渲染后的页面返回给前端控制器DispatcherServlet。
DispatcherServlet将页面发送给客户端浏览器进行显示。
struts 面试题
struts 面试题1. 什么是 Struts?Struts 是一个基于 Java EE 平台的开源的 MVC(Model-View-Controller)框架,用于开发基于 Web 的应用程序。
它提供了一个组织结构良好、模块化的方式来构建应用程序,并支持强大的表单处理、数据校验、国际化等特性。
2. Struts 的核心组件有哪些?Struts 的核心组件包括:- Action:处理用户请求并提供响应的控制器组件。
- Model:代表应用程序的数据和业务逻辑。
- View:呈现用户界面的组件。
3. Struts 的工作原理是什么?当用户发送请求时,Struts 的前端控制器(Front Controller)接收请求并根据配置文件中的映射关系将请求转发给具体的 Action。
Action 处理请求后会根据业务逻辑进行相应的处理,并将结果存储在一个称为 ActionContext 的容器中。
最后,结果通过视图(JSP 页面)进行呈现,并返回给用户。
4. Struts 中的配置文件有哪些?Struts 中的常见配置文件包括:- struts.xml:主配置文件,定义全局的配置和拦截器的使用。
- struts-config.xml:旧版 Struts 使用的配置文件,用于定义 Action、FormBean、异常处理等。
- validation.xml:数据校验的配置文件,用于定义表单字段的验证规则。
5. 如何创建一个 Struts 的 Action 类?要创建一个 Struts 的 Action 类,需要遵循以下步骤:- 继承 org.apache.struts.action.Action 类。
- 重写 execute() 方法,该方法接收一个 ActionMapping 对象和一个ActionForm 对象作为参数。
- 在 execute() 方法中编写处理请求的业务逻辑,并返回一个ActionForward 对象。
struts的工作原理
struts的工作原理Struts是一种基于Java的开源Web应用程序开发框架,它提供了一种模型-视图-控制器(MVC)的架构模式,用于帮助开发人员构建灵活、可维护和可扩展的Web应用程序。
Struts框架的核心是一个控制器组件,它通过接收和处理用户请求来协调模型和视图之间的交互。
下面将详细介绍Struts的工作原理,以便更好地理解这个框架的内部机制。
1. 请求的接收:当用户在浏览器中发起一个HTTP请求时,该请求首先到达Web服务器。
Web 服务器将请求发送给Struts框架的核心控制器组件,即ActionServlet。
ActionServlet是一个单例对象,负责处理所有的用户请求。
2. 请求的路由:ActionServlet根据请求的URL路径和配置文件中的映射规则,将请求路由到相应的Action类。
Action类是Struts框架中的控制器组件,负责处理特定类型的请求。
3. Action的执行:一旦请求被路由到相应的Action类,Action类的执行过程开始。
Action类通常包含一个或多个处理方法(也称为Action方法),用于执行特定的业务逻辑。
在执行Action方法之前,Struts框架会自动将请求参数绑定到Action类的属性上。
4. 业务逻辑的处理:在Action方法中,开发人员可以编写业务逻辑代码,例如从数据库中检索数据、处理用户输入、执行计算等。
Action方法可以返回一个结果代码,用于指示下一步应该执行哪个视图。
5. 视图的选择:根据Action方法的返回结果代码,Struts框架将选择相应的视图来呈现给用户。
视图通常是一个JSP页面,用于生成动态的HTML内容,也可以是一个PDF文档、一个XML文件等。
6. 视图的渲染:一旦选择了视图,Struts框架将通过请求转发将控制权交给视图组件。
视图组件负责使用模型中的数据来生成最终的响应内容。
在JSP页面中,可以使用Struts标签库来访问Action类中的属性和方法。
struts框架的原理和应用
Struts是一个基于Java语言的开源Web应用程序框架,由Apache软件基金会开发和维护。
Struts框架基于MVC(模型-视图-控制器)设计模式,为构建企业级Java Web应用程序提供了一种简化和标准化的方法,使开发人员能够更加轻松地进行Web应用程序的设计和构建。
1. Struts框架的原理:Struts的工作原理主要是基于以下几个组件:* 控制器(ActionServlet):控制器是Struts框架的核心,负责接收浏览器发送的HTTP请求,根据请求调度处理程序,处理完请求后将结果返回给视图层。
* Action类:代表了一个具体的业务处理操作,负责处理来自用户的请求并响应。
每个Action类都需要继承框架提供的基本Action类,然后根据需求实现具体的业务逻辑。
* 配置文件(struts-config.xml):配置文件描述了Action对象、表单对象以及其他相关配置信息,例如URL映射关系、转发规则等。
控制器会根据配置文件里的信息执行相应的操作。
* 表单Bean(FormBean):表示Web页面提交表单的数据封装,用于在视图层和业务逻辑之间传递数据。
它们通常继承自框架提供的基本FormBean类,并定义表单中需要的属性和验证方法。
* 视图(JSP页面):视图层负责呈现Web应用程序的用户界面,通常使用JSP页面来实现。
JSP页面可以利用Struts自定义标签库(如:logic、html、bean等),方便地创建动态Web内容。
* Struts框架的应用:由于Struts框架简化了Web应用程序的开发过程且具有较高的稳定性和可扩展性,因此被广泛应用于企业级Java Web应用程序的开发。
例如在线商城、内容管理系统、企业信息管理系统等都可以使用Struts框架构建。
Struts框架的主要优点:* 结构清晰:基于MVC设计模式,将程序结构化为模型、视图和控制器三个部分,有利于代码的组织和维护。
struts教程详解
struts教程详解Struts是一种基于Java的开源Web应用程序框架,它旨在简化Web应用程序的开发过程。
它遵循MVC(Model-View-Controller)设计模式,提供了一种结构化的方法来开发Web应用程序。
Struts的核心是一个前端控制器(Front Controller),它是整个框架的核心。
它接收来自用户的请求,并将其分派到相应的处理程序上。
在Struts中,这个前端控制器被称为ActionServlet。
在Struts中,应用程序被划分成一组逻辑部件,称为Action。
每个Action都相当于Web应用程序中的一个页面或操作。
当用户请求一些Action时,ActionServlet将负责查找并执行相应的处理程序。
在Struts中,业务逻辑被封装在一个中间部件中,称为ActionForm。
它是一个JavaBean,用于在视图和控制器之间传递数据。
ActionForm可以捕获用户输入的值,并将其传递给业务逻辑处理程序。
Struts还提供了一种验证框架,用于验证用户输入的数据。
通过使用这个验证框架,开发人员可以定义数据的验证规则,并在处理用户输入之前对其进行验证。
这可以有效地减少服务器端的数据校验工作。
在使用Struts开发Web应用程序时,需要按照以下步骤进行:1. 配置web.xml文件:在web.xml文件中配置Struts的前端控制器ActionServlet。
2. 创建Action:创建处理用户请求的Action类,并在struts-config.xml文件中进行相应的配置。
3. 创建ActionForm:创建用于封装用户输入数据的ActionForm类,并在struts-config.xml文件中与相应的Action进行关联。
5. 配置struts-config.xml文件:在struts-config.xml文件中配置Action、ActionForm和全局配置信息,如消息资源文件和异常处理器等。
Struts 各个组件工作原理
------struts in action 读书笔记1. ActionServlet:Struts 的ActionServlet控制导航流。
当ActionServlet 从容器接到一个请求,它使用URI(或者“path”)也决定哪个Action来处理请求。
< Control Layout >2. Action:用来访问业务逻辑类。
一个 Action 可以校验输入,并且访问业务层以从数据库检索信息。
为校验输入或者使用输入来更新数据库,Action 需要知道什么值被提交上来。
它并不是强制每个Action都要从请求中抓取这些值,而是由 ActionServlet 将输入绑定到 JavaBean 中。
< Model Layout >3.ActionForm:输入 bean 是Struts ActionServlet 类的子类。
ActionServlet 通过查找请求的路径可以决定使用哪个 ActionForm(输入 Javabean ),Action 也是通过同样的方法选取的。
ActionForm扩展了org.apache.struts.action.ActionForm类。
< Data >4.ActionMapping:Struts将这些细节绑定在一个ActionMapping对象中。
每个ActionMapping相对于一个特定的路径。
当某个路径被请求时,Servlet 就查询ActionMapping 对象。
ActionMapping对象告诉servlet,哪些个Action,ActionForm,和 ActionForward 将被本次请求使用。
每个请求都必须以HTTP响应进行应答。
通常,Struts Action 并不自行渲染响应信息,而是将请求转发到其他资源,比如JSP页面。
Struts提供一个ActionForward类,用于将一个页面的路径保存为逻辑名称。
第4章 Struts核心组件及运行机制
Action组件
• org.apache.struts.actions.Action类是Struts框架包的 核心类之一,用于与模型进行交互,执行状态改 变或状态查询,以及告诉ActionServlet下一个要跳 转的视图。控制器会调用Action类的execute()方法 处理用户请求,Action类中execute()方法的源码如 下:
7
ActionForm组件
• 通过编写org.apache.struts.action.ActionForm类的子 类,用于从一个或者多个HTML表单中获取数据并 将它传递给Action类 • ActionForm的一个属性与HTML表单一个数据域对应 • ActionForm类需要符合JavaBean规范,因此要在自 定义的ActionForm子类中为每个属性定义对应的set 和get方法 • 如果需要使用Struts框架提供的可配置自动数据验 证功能,还必须在自定义的ActionForm子类中重写 validate()方法
14
编写Struts程序的步骤
• 1、新建一个Web项目名称为strutsdemo,假设位 于d:\workspace\strutsdemo • 2、复制需要的Struts框架包到WEB-INF/lib目录,将 Struts解压后的lib目录中的所有包考到应用的 /WEB-INF/lib
– struts.jar、antlr.jar、commons-beanutils.jar、 commons-digester.jar、commons-logging.jar、 commons-validator.jar、jakarta-oro.jar和commons-fileupload.jar
…… getters and setters
struts的工作原理
struts的工作原理Struts是一个基于Java的开源MVC框架,用于构建Web应用程序。
它提供了一种将业务逻辑、数据访问和用户界面分离的方式,以提高应用程序的可维护性和可扩展性。
在本文中,我们将详细介绍Struts的工作原理,包括其核心组件、请求处理流程和数据流动。
一、核心组件1. 控制器(Controller):Struts的控制器是一个Servlet,它充当了整个框架的核心。
当用户发起请求时,控制器负责接收请求并将其路由到相应的处理程序。
2. 动作(Action):动作是一个Java类,用于处理具体的业务逻辑。
每个动作都实现了Action接口,并重写了execute()方法。
控制器通过配置文件将请求映射到相应的动作。
3. 表单(Form):表单用于封装用户提交的数据。
每个表单都是一个JavaBean,它包含了与用户界面相关的属性和验证规则。
表单的数据由控制器传递给相应的动作进行处理。
4. 视图(View):视图负责展示数据给用户。
在Struts中,通常使用JSP作为视图技术。
动作处理完数据后,将数据存储在请求的属性中,并将请求转发给相应的JSP页面进行展示。
5. 拦截器(Interceptor):拦截器用于在请求处理的不同阶段执行一些共享的任务,如身份验证、日志记录等。
拦截器可以在控制器和动作之间进行配置,以实现特定的功能。
二、请求处理流程1. 用户发起请求:用户在浏览器中输入URL或点击链接,向服务器发送请求。
2. 控制器接收请求:服务器接收到请求后,将其交给Struts的控制器。
3. 控制器路由请求:控制器根据配置文件将请求路由到相应的动作。
4. 动作处理请求:动作接收到请求后,根据业务逻辑进行处理。
它可以从请求中获取表单数据,并执行相应的操作。
5. 动作返回结果:动作处理完请求后,将结果存储在请求的属性中,并将请求转发给相应的JSP页面。
6. 视图展示数据:JSP页面接收到请求后,从请求的属性中获取数据,并将其展示给用户。
struts资料3
7 2-7
思考
1.Struts Menu带给你的好处是什么? 带给你的好处是什么? 带给你的好处是什么 2.如何通过 如何通过Struts Menu来实现一个用户权限的控制,即不同权限的用户 来实现一个用户权限的控制, 如何通过 来实现一个用户权限的控制 看到的菜单项不同? 看到的菜单项不同?
8 2-8
12 2-12
在Action中调用Tiles组件 Action中调用Tiles组件 中调用Tiles
Tiles组件的用法 Tiles组件的用法
以上代码定义了两个Tiles组件,它们分别代表完整的index.jsp 组件,它们分别代表完整的 以上代码定义了两个 组件 页面。 和product.jsp页面。 页面 4. 在Strut配置文件中配置 配置文件中配置TilesPlugin插件,配置如下 : 插件, 配置文件中配置 插件 <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEBINF/tiles-defs.xml" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> TilesPlugin插件用于加载 插件用于加载Tiles组件的配置文件。在plug-in元素 组件的配置文件。 插件用于加载 组件的配置文件 元素 中包含几个set-property子元素,用于向 子元素, 中包含几个 子元素 用于向TilesPlugin插件传入附 插件传入附 加的参数: 加的参数: ·definitions-config参数:指定 参数: 组件的配置文件, 参数 指定Tiles组件的配置文件,如果有 组件的配置文件 多个配置文件,则它们之间用逗号分隔。 多个配置文件,则它们之间用逗号分隔。 ·definitions-parser-validate参数:指定 参数: 参数 指定XML解析器是否验证 解析器是否验证 Tiles配置文件,可选值包括 配置文件, 配置文件 可选值包括true和false,默认值为 和 ,默认值为trs组件的用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21 July. 2008 Confidential
ActionServlet 类
•
Struts框架中ActionServlet类型只会产生一个对象,由它来接受 所有客户的请求信息,所以在web.xml文件中作出以下配置。
…… …… <servlet-mapping> <servlet-mapping> <servlet-name>action</servlet-name> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> <url-pattern>*.do</url-pattern> </servlet-mapping> </servlet-mapping> …… ……
21 July. 2008 Confidential
ActionServlet初始化过程
当ActionServlet类第一次加载的时候,init()方法将调 用,来完成用户响应前的初始化任务。 • 完成初始化任务后,当ActionServlet实例接收到HTTP请 求,将会调用process()方法。
21 July. 2008 Confidential
IncludeAction 类
•
用来包含其他的Web组件
•• <action <action •• path="/include" path="/include" •• parameter="/ok.jsp" parameter="/ok.jsp" •• type="org.apache.struts.actions.IncludeAction" type="org.apache.struts.actions.IncludeAction" •• scope="request"/> scope="request"/>
•• •• •• •• •• ••
<action <action path="/forward" path="/forward" type="org.apache.struts.actions.ForwardAction" type="org.apache.struts.actions.ForwardAction" parameter="/login.jsp" parameter="/login.jsp" scope="request" scope="request" validate="false"/> validate="false"/>
本章要点
• • • • • •
控制器组件 Action组件类 ActionForward与ActionMapping类 其他的内置Action类简介 ActionForm组件及错误处理 扩展Struts框架
21 July. 2008 Confidential
控制器组件
•
Struts框架中控制器组件包括:ActionServlet、Action等。 控制器组件的作用是: – 负责接受客户端请求数据。 – 根据客户的请求动作,选择相应的Action组件。 – 从请求中获取数据填充ActionForm(如果需要)。 – 在Action组件类中处理客户的请求。 – 选择合适的视图返回给客户端。
创建一个新的ActionForward对象实例 – new ActionForward(“ok”,”ok.jsp”,true); • 调用方法获得ActionForward对象 – mapping.findForward(“error”);
•
<action> <action> …… …… <forward name="ok" path="/ok.jsp" /> <forward name="ok" path="/ok.jsp" /> <forward name="error" path="/error.jsp" /> <forward name="error" path="/error.jsp" /> </action> </action>
第三章 Struts核心组件介绍
3 Sept. 20082008 By By Neusoft Group. ri Copyright 2008 Neusoft Group. All All rights reserved © Neusoft Confidential
21 July. 2008 Confidential
Action组件类的线程问题
Struts框架只会为每个Action类创建一个Action实例。所有客 户请求共享同一个Action实例,并且所有请求线程可以同时 执行它的execute()方法。 • 在多个线程同时使用Action对象的时候,要注意数据的线程 安全。
•• •• ••
public ActionForward delete(ActionMapping mapping, ActionForm form, public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception HttpServletRequest request, HttpServletResponse response) throws Exception public ActionForward insert(ActionMapping mapping, ActionForm form, public ActionForward insert(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception HttpServletRequest request, HttpServletResponse response) throws Exception public ActionForward update(ActionMapping mapping, ActionForm form, public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception HttpServletRequest request, HttpServletResponse response) throws Exception
21 July. 2008 Confidential
RequestProcessor主要方法
21 July. 2008 Confidential
Action类
• •
定义多个Action类,用于处理客户端请求。 定义的Action组件类为org.apache.struts.action.Action子类 类型, RequestProcessor调用该类的execute()方法以处 理不同的页面请求 。
21 July. 2008 Confidential
RequestProcessor类
• • •
每个子应用模块都有各自的RequestProcessor实例。 封装了Struts控制器在处理请求时所遵循的控制逻辑。 ActionServlet通过调用RequestProcessor对象的process() 方法来处理客户端请求
•
21 July. 2008 Confidential
ActionForward类
execute()方法执行完毕后会返回一个 ActionForward对象 。 • ActionForward对象它封装了一个Web资源 。
•
21 July. 2008 Confidential
创建ActionForward对象两种方法
21 July. 2008 Confidential
ActionMapping类
•
ActionMapping是用来封装struts-config.xml文件中 <action>标记的配置信息 。
21 July. 2008 Confidential
ForwardAction类
•
ForwardAction类是专门进行请求转发操作 。
21 July. 2008 Confidential
process()方法作用
处理当前应用请求的子模块,把该子模块相应的信息保存到 request领域中。 • 调用RequestProcessor类中的process()方法来完成实际的处理请 求操作。
•
protected void process(HttpServletRequest request, protected void process(HttpServletRequest request, HttpServletResponse response) HttpServletResponse response) throws IOException, ServletException {{ throws IOException, ServletException ModuleUtils.getInstance().selectModule(request, getServletContext()); ModuleUtils.getInstance().selectModule(request, getServletContext()); getRequestProcessor(getModuleConfig(request)).process(request, getRequestProcessor(getModuleConfig(request)).process(request, response); response); }}