struts框架

Struts框架入门指南(中文版) 本文还有配套的精品资源,点击获取 简介:Struts是一个开源的Java Web框架,遵循MVC设计模式,由Apache基金会维护。它通过简化复杂业务逻辑的处理和提高开发效率,支持开发者构建企业级Web应用程序。本指南详细介绍了Struts框架的核心概念、工作原理、关键组件、优势以及替代框架,帮助初学者快速入门并掌握Struts的应用。 1. Struts框架概述... 阅读详情
Struts有三个重要的组成部分:
Action Bean
ActionServlet
ActionForm Bean 和定制的标记
Action Bean和ActionServlet struts提供了一个单独的ActionServlet(org.apache.struts.action.ActionServlet)
来处理所有的浏览器请求。这种类型的框架我们称为FrontController模式,每个浏览器
的请求都有Struts的Action子类(org.apache.strtus.action.Action)的子类来处理
每个浏览器的请求都被映射为strtus-config.xml文件内的一个Action子类。ActionServlet在
初始化期间加载这些映射。要配置web项目使其把所有的浏览器请求都传递给ActionServlet
请把所有以.do结尾的URI(例如:.do)都映射为web描述符中的ActionServlet。然后
你可以在Strtus-config.xml文件中为各个请求URI(比如:/submit.do)提供实际的action映射。

ActionForm Bean 浏览器请求时可带参数。当用户提交html表单后,Struts框架就把
参数放在一个org.apache.struts.action.ActionFrom Bean中,你也可以用ActionFrom Bean
把缺省值预先植入一个表单,这些缺省值可从数据库或其他的后端系统获的。如果用户在表单中输入了
不正确的值,ActionForm可以进行验证。你可以用以前的输入重新显示表单。

ActionServlet和Action类是MVC模型中控制器的核心,改控制器负责处理用户的请求,把请求路由到业务
逻辑,并选择视图来响应用户。表单提交给submit.do后,Struts ActionServlet会
根据struts-config.xml文件中的配置选择正确的action类来用。

Struts Action 子类负责处理用户数据。在这个示例中,创建一个名为 SubmitAction 的 Struts
Action 子类。它由诸如读和处理表单数据之类的操作组成。每一个表单都和该 Struts
ActionForm 子类的一个实例关联在一起。请创建这个继承 ActionForm 的表单类。
SubmitForm 是 ActionForm 的一个子类,它是用域的 getter 和 setter 方法创建的。getter
和 setter 方法在 ActionForm 子类中都是必须有的。

SubmitForm 怎样发挥作用? 每一个 Struts Action 类都必须和一个 Struts ActionForm 类
关联在一起。您可以在 WebSphere Studio 中的 struts-config.xml 编辑器的 FormBean 页面
中定义 SubmitForm 类。然后可以把它与 struts-config.xml 文件中的 SubmitAction 映射关
联在一起。一个请求提交后,ActionServlet 把从 Web 浏览器上的实际表单中得到的数据自
动植入 SubmitForm。在 SubmitAction 类中,用 SubmitForm f = (SubmitForm) form 来访问
表单数据。

struts框架对于MVC的实现:
控制器-->
Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响
应结果送回到客户端。在Struts 中Controller 功能由图中ActionServlet 和ActionMapping 对
象构成:核心是一个Servlet 类型的对象ActionServlet,它用来接受客户端的请求。
ActionServlet 包括一组基于配置的ActionMapping 对象,每个ActionMapping 对象实现了一
个请求到一个具体的Model 部分中Action 处理器对象之间的映射。
模型-->
Model: MVC 系统中的Model 部分从概念上可以分为两类――系统的内部状态,和改
变系统状态的动作。Struts 为Model 部分提供了Action 和ActionForm 对象:所
有的Action 处理器对象都是开发者从Struts 的Action 类派生的子类。Action
处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的
View 组件以产生响应。Struts 提供的ActionForm 组件对象,它可以通过定义属
性描述客户端表单数据。开发者可以从它派生子类对象,利用它和Struts 提供的自定
义标记库结合可以实现对客户端的表单数据的良好封装和支持,Action 处理器对象可
以直接对它进行读写,而不再需要和request、response 对象进行数据交互。通过
ActionForm 组件对象实现了对View 和Model 之间交互的支持。Struts 通常建议
使用一组JavaBean 表示系统的内部状态,根据系统的复杂度也可以使用像Entity
EJB和 Session EJB 等组件来实现系统状态。Struts 建议在实现时把"做什么"
(Action)和"如何做"(业务逻辑)分离。这样可以实现业务逻辑的重用。
视图-->
View:Struts 应用中的View 部分是通过JSP 技术实现的。Struts 提供了自定义
的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model 部分交互,通
过使用这些自定义标记创建的JSP 表单,可以实现和Model 部分中的ActionForm
的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显
示功能。

Struts 框架的处理流程清楚的体现了MVC 系统的特点,Struts Controller ActionServlet
处理客户请求,利用配置的ActionMapping 对象把请求映射到Action 处理器对象
进行处理。Action 处理对象访问ActionForm 中的数据,处理和响应客户请求,它
还调用后台的Bean 组件,这些组件封装了具体的业务逻辑。Action 处理器对象根
据处理结果通知Controller,Controller 进行下一步的处理。

struts的开发流程:
3.利用Struts 框架开发MVC 系统要做的工作
由于Struts 已经为我们提供了一个非常好的MVC 框架,我们利用Struts 开发MVC
系统时可以大大加快开发的速度。在开发时可以采用的一个开发流程如下:
收集和定义应用需求。
基于数据采集和显示的原则定义和开发"屏幕显示"需求 。
为每一个"屏幕显示"定义访问路径。
定义ActionMappings 建立到应用业务逻辑之间的联系。
开发满足"屏幕显示"需求的所有支持对象。
基于每一个"屏幕显示"需求提供的数据属性来创建对应的ActionForm 对象
开发被ActionMapping 调用的Action 对象。
开发应用业务逻辑对象 (Bean,EJB,等等)。
对应ActionMapping 设计的流程创建JSP 页面。
建立合适的配置文件struts-config.xml , web.xml。
开发/测试/部署
具体在使用Struts 框架时,对应各个部分的开发工作主要包括:
Model 部分:采用JavaBean 和EJB 组件,设计和实现系统的业务逻辑。根据不同的
请求从Action 派生具体Action 处理对象。完成"做什么"的任务来调用由Bean 构成
的业务组件。创建由ActionForm 的派生类实现对客户端表单数据的封装。
Controller 部分:Struts 为我们提供了核心控制部分的实现。我们只需要配置
ActionMapping
对象
View 部分:为了使用Model 中的ActionForm 对象,我们必须用Struts 提供的自
定义标记创建HTML 表单。利用Struts 提供的自定义标记库编写用户界面把应用逻辑
和显示逻辑分离。Struts 框架通过这些自定义标记建立了View 和Model 之间的联
系。Struts 的自定义标记还提供了很多定制页面的功能。

写struts组件时应注意的一些原则:
当你在写你的ActionForm beans 时,记住以下的原则:

ActionForm 接口本身不需要特殊的实现方法。它是用来标识这些特定的beans 在整
个体系结构中的作用。典型情况下,一个ActionForm bean 只包括属性的get 方法
和set 方法,没有商业逻辑。
通常在一个ActionForm bean 中只有很少的输入验证逻辑。这样的beans 存在的主
要理由是保存用户为相关的表单所输入的大部分近期值 -- 甚至在错误被检测到时--
这样同样的页面可以被重建,伴随有一组出错信息,这样用户仅仅需要纠正错误的字段。
用户输入的验证应该在 Action 类中执行(如果是很简单的话),或者在适当的商业
逻辑beans 中执行。为每个表单中出现的字段定义一个属性(用相关的getXxx()和
setXxx()方法)。字段名和属性名必须按照JavaBeans 的约定相匹配。例如,一个
名为 username 的输入字段将引起setUsername() 方法被调用。
你应该注意一个“表单”在这里讨论时的意义并不必须对应于用户界面中的一个单独的
JSP页面。在很多应用程序中一个“表单”(从用户的观点)延伸至多个页面也是很平常
的。想想看,例如,通常在安装新的应用程序时使用的导航安装程序的用户界面。
Struts 鼓励你定义一个包含所有字段属性的单独的ActionForm bean。不管字段实
际上是显示在哪个页面上。同样的,同一表单的不同的页面应该提交到相同的Action
类。如果你遵照这个建议,在大多数情况下,页面设计者可以重新组织不同页面中的字
段而不需要改变处理逻辑。

2.4 系统状态Beans
系统的实际状态通常表示为一组一个或多个的JavaBeans 类,其属性定义当前状态。例如,
一个购物车系统包括一个表示购物车的bean,这个bean 为每个单独的购物者维护,这个bean
中包括(在其它事物之中)一组购物者当前选择购买的项目。分别地,系统也包括保存用户
信息(包括他们的信用卡和送货地址)、可获得项目的目录和它们当前库存水平的不同的
beans。
对于小规模的系统,或者对于不需要长时间保存的状态信息,一组系统状态beans 可以包含
所有系统曾经经历的特定细节的信息。或者经常是,系统状态beans 表示永久保存在一些外
部数据库中的信息(例如CustomerBean 对象对应于表 CUSTOMERS 中的特定的一行),在
需要时从服务器的内存中创建或清除。在大规模应用程序中,Entity EJBs 也用于这种用途。
2.5 商业逻辑Beans
你应该把你的应用程序中的功能逻辑封装成对为此目的设计的JavaBeans 的方法调用。这些
方法可以是用于系统状态beans 的相同的类的一部分,或者可以是在专门执行商业逻辑的独
立的类中。在后一种情况下,你通常需要将系统状态beans 传递给这些方法作为参数处理。
为了代码最大的可重用性,商业逻辑beans 应该被设计和实现为它们不知道自己被执行于
web 应用环境中。如果你发现在你的bean 中你必须import 一个 javax.servlet.* 类,你就把
这个商业逻辑捆绑在了web 应用环境中。考虑重新组织事物使你的 Action 类(Controller
任务的一部分,在下面描述)翻译所有从HTTP 请求中请求被处理为对你的商业逻辑beans
属性set 方法调用的信息,然后可以发出一个对 execute() 的调用。这样的一个商业逻辑类
可以被重用在除它们最初被构造的web 应用程序以外的环境中。
依赖于你的应用程序的复杂度和范围,商业逻辑beans 可以是与作为参数传递的系统状态
beans 交互作用的普通的JavaBeans,或者使用JDBC 调用访问数据库的普通的JavaBeans。
而对于较大的应用程序,这些beans 经常是有状态或无状态的EJBs。
全面掌握Struts框架开发资料集 本文还有配套的精品资源,点击获取 简介:Struts框架是实现MVC模式的重要Java Web开发组件,支持构建可扩展和模块化的Web应用程序。本资料从基础到进阶详细介绍了Struts框架的使用,包括环境配置、Action类、struts.xml配置、国际化处理及数据验证等关键概念和实践方法。同时,涵盖了Servlet、JSP和JSTL等Java Web编程核心知识,帮助开... 阅读详情

相关推荐

Struts框架实战应用教程

本文还有配套的精品资源,点击获取 简介:Struts是一个开源框架,用于构建基于Java的企业级Web应用程序,并实现了MVC设计模式。本教程通过实例和详细解释,旨在指导学习者深入理解Struts框架的核心概念、配置、组件以及最佳实践,以便快速掌握Struts在Web应用开发中的应用。 1. Struts开源框架概述 1.1 Struts框架简介 St...

weixin_42524864的博客 816

从一个struts action类直接跳到另一个action中

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {   String bUrl = "kcxxAction.do?method=toFindKcx

sysz2005的专栏 432

Struts基础框架搭建与实战演练

本文还有配套的精品资源,点击获取 简介:Struts是一个开源的Java EE框架,采用MVC模式帮助开发者构建易于维护的Web应用程序。本工程通过实现基础的Struts架构,介绍如何组织代码结构,包括Action类、配置文件、JSP和Tag Libraries、ActionForm、国际化/本地化、异常处理以及Tiles框架集成。学生将通过学习这些组件和流程来掌握Stru...

weixin_42126677的博客 1011

struts2处理form表单的多submit提交

1.页面 %@page language="java"import="java.util.*"pageEncoding="UTF-8"%> %@taglibprefix="s"uri="/struts-tags"%>     MyJSP'hello.jsp'startingpage                                  2.实

技术是条不归路 1456

react +ant desiagn pro实现按钮操作权限控制

在ant desiagn pro中提供了一个access用于对权限进行控制,需引入useAccess和Access

Sylvasylva的博客 2211

免费获取船舶轨迹数据?手把手教你用Python处理中国海洋卫星AIS数据

本文详细介绍了如何免费获取中国海洋卫星AIS数据,并使用Python进行船舶轨迹数据的处理与分析。从数据源评估到自动化处理流水线,再到高级分析与可视化技巧,手把手教你避开常见问题,实现高效数据处理。特别适合航运数据分析、物流优化和海上安全研究等领域的研究者和开发者。

weixin_42616115的博客 320

Struts框架

用struts来开发的一个web应用,实现struts的property标签来获取Action中的属性,并直接显示在页面之中。 2. strut简单的综合应用:设计有一定通用性的数据库查询系统,用户提供数据库名和查询语句,则能够对指定的数据库进行指定的查询 ......

capture3333的博客 6665

线性代数——(期末突击)行列式(上)-行列式计算、行列式的性质

简单解释一下:4213原本的顺序应为1234,对于‘4’而言,‘2’、‘1’、‘3’都应该排在它的前面,所以此处记逆序数为3;对于‘2’而言,‘1’应该排在它的前面,而‘3’排在它之后 是合理的,所以此处只有一个逆序数;最后看‘1’,其后面的‘3’排在后面显然也是合理的,故而4213的逆序数为4.一般我们使用这个性质来计算四阶行列式,也就是将其变换成三角行列式,再计算对角线的值;以主对角线为分界线的就为正三角,反之则为反三角行列式。若行列式某一行(列)为0,则该行列式=0.将和的那一行分开,其余行。

li13437542099的博客 1万+

Struts2第一天课堂笔记

Struts2第一天课堂笔记 一、框架概述 1、框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面。 特点:封装了很多细节,程序员在使用的时候会非常简单。 ...

u013165852的博客 1052

别再只盯着YOLOv8了!手把手带你用PaddleDetection的PP-YOLOE+搞定你的第一个检测项目

本文介绍了PP-YOLOE+在目标检测领域的优势与应用实践,对比YOLOv8展示其在精度、速度和部署便利性上的突破。通过详细的代码示例和实战教程,帮助开发者快速上手PaddleDetection工具链,实现产业级目标检测项目,提升开发效率。

weixin_42701915的博客 185

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

Struts 框架

遗留系统维护:Struts 1 仍广泛存在于政府、金融等传统 JavaEE 项目。现代替代方案:Spring MVC 更轻量,注解驱动更灵活;但Struts 2 的拦截器设计和OGNL 表达式仍值得借鉴。架构启示MVC 分层、配置中心化()、拦截器机制均为后续框架(如 Spring)提供了重要范本。作为架构师,建议在新项目中选用,但对 Struts 的理解有助于快速重构遗留系统,并深入理解 MVC 框架的演进逻辑。

chenglin016的博客 817

1999年-2022年 上市公司-企业劳动生产率数据(原始数据、代码、最终结果、参考文献)

上市公司企业劳动生产率数据集为企业和市场参与者提供了一个深入分析企业生产效率和劳动效益的工具。通过这些数据,企业可以不断探索创新的发展模式和管理方式,努力提高生产效率,为提升市场竞争力和盈利能力做出贡献。数据名称:上市公司-企业劳动生产率数据数据年份:1999-2022年数据来源:国泰安数据库1999年-2022年 上市公司-企业劳动生产率数据(原始数据、代码、最终结果、参考文献)

2401_84585615的博客 881

Struts2框架——Struts的错误回显以及struts标签

Struts的错误回显以及struts标签 ​ 本次记录一下 Struts 的错误回显以及 struts 框架前端标签的简单用法 Struts 的错误回显 ​ 在 struts.xml 中的 result 标签中,把 name 属性的值设置成 input,这样当数据出现异常时,会自动回显到后边声明的 jsp 页面 <action name="register" class="com.l...

scfor333的博客 458

RK3588 部署 YOLOv5s 实战:多线程加速从 16FPS 飙升到 120FPS(含性能优化)

因为RK3588包含了3个NPU核心,支持3个核心同时工作、双核合作、以及单核工作。我们可以使用线程池来加速。线程池是一种长街的并发编程模型,它用于管理和复用线程,以提高多线程程序的性能和效率。线程池通常包含以下主要组件:1、任务队列:任务队列用于存储待执行的任务。这些任务可以是函数、方法或其他需要多线程环境中执行的操作。2、线程池管理:线程池管理器负责创建、销毁和管理线程。它会监视任务队列中的任务,根据需要创建线程,执行任务,并在任务完成后将线程放回池中以供重用。

FJN110的博客 99

【基础-单选】Row组件中有两个Text组件,如果使用justifyContent对齐方式,下面哪个属性可以实现左右两端对齐:

Row组件中有两个Text组件,如果使用justifyContent对齐方式,下面哪个属性可以实现左右两端对齐

江拥羡橙的博客 1304

struts2框架之struts框架介绍

如今,在Java Web 学习中,框架的学习是很重要的一个环节,大家很熟悉的名词SSH,代表的就是Struts、Spring、Hibernate三大框架。SSH也是现如今企业主流的JavaEE开发的一套架构。那么什么是框架呢?我们又为什么要学习框架?对于第一个问题,需要我们以后再实践的学习中慢慢体会,这里给一个定义:框架是实现部分功能的代码!那么学习框架的技术,我们可以利用框架来简化企业级软件开发

ZhiyouWu的博客 9648

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Struts2 框架简介

概述 Struts2 是基于MVC设计模式的web应用程序框架,最初是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。 模型(Model)-视图(View)-控制器(Controller),通常简称MVC,是一种开发web应用程序的软件设计模式。该软件设计模式由以下三部分组成:   模型——属于软件设计模式的底层基...

jcs1992的博客 2565

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Struts框架详解

1、Struts应用框架介绍(1)框架框架最简单的形式是指已开发过并已测试过的软件的程序块,这些程序块可以在多个软件开发工程中重用。框架提供了一个概括的体系结构模版,可以用这个模板来构建特定领域中的应用程序。Framework概念并不是很新了,伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可以将充裕的时间用

魏杰的专栏 1430

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

struts2框架的总结

struts2框架的学习心得   经过一段时间的学习,逐渐学会了java的一些框架,想在这里做个总结,可能有一些不足之处,日后补充。 一、struts2框架的历史         struts2框架是由apache基金会研发的一种开源框架,但是并不是单纯的由struts1版本升级而来,而是apache根据一个名为webwork的项目发展来的,所以两者的关系并不大。 二、为什

lanlan521523的博客 1945

Struts框架简介

(一)个人整理Struts框架简介一,什么是框架?         所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑。   二,MVC设计模式         将应用程序分为3个部分:模型 Model,视图View,控制器Controller;        模型组件:负责业务逻辑;               模型包含应

自强 2707
上一篇: 几种常用的表单输入判断
下一篇: C语言的参数传递
damfool
博客等级 码龄22年 19粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值