Struts 框架的基本概念及实现MVC模式的原理

struts1 mvc基本原理 NULL 博文链接:https://diaochenlong2.iteye.com/blog/1830592 立即下载

Struts 框架的基本概念

当建筑师开始一个建筑项目时,首先要设计该建筑的框架结构,有了这份蓝图,接下来的实际建筑过程才会有条不紊,井然有序。同样,软件开发者开始一个软件项目时,首先也应该构思该软件应用的框架,规划软件模块,并定义这些模块之间的接口和关系。简单地说,框架是一组用于解决特定软件问题的类和接口的集合。
框架可以提高软件开发的速度和效率,并且使软件更便于维护。框架提供了一整套预制的软件构件,能够为开发者所使用、扩展及定制以满足特定的业务需求。框架是软件系统的设计开发过程中的一个概念,它强调对已完成的设计、代码的重复使用。框架通常具有如下的特性:
(1)组成框架的类和组件,一般都提供对一些概念、方法的抽象。
(2)框架定义抽象直接的关系和交互,用以解决特定的问题。
(3)框架的组件是可重用的。
对于开发 Web 应用,要从头设计并开发出一个可靠、稳定的框架并不是一件容易的事。幸运的是,随着 Web 开发技术的日趋成熟,在 Web 开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,Struts 就是一种不错的选择,它是基于MVC 的 Web 应用框架。
Struts 最早于 2000 年 5 月作为 Jakarta 项目的组成部分问世,Jakarta 项目由Apache(www.Jakarta.apache.org)基金组织运作。Jakarta-Struts 是 Apache 软件组织提供的一项开放源代码项目,它为 Java Web 应用提供了模型-视图-控制器(Model-View-Controller,MVC)框架,尤其适用于开发大型可扩展的 Web 应用。Struts这个名字来源于在建筑和旧式飞机中使用的支撑金属架。Struts 为 Web 应用提供了
一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。此外,Struts 框架提供了许多可供扩展和定制的地方,使得应用程序可以方便地扩展框架,来更好地适应用户的实际需求。


Struts 实现 MVC 的原理

Struts 实质上就是在 JSP Model2 地基础上实现的一个 MVC 框架。在 Struts 框架中,模型由实现业务逻辑地 JavaBean 或 EJB 组件构成,控制器由 ActionServlet 和Action 来实现,视图由一组 JSP 文件构成。
(1)视图
视图就是一组 JSP 文件。在这些 JSP 文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准地 JSP 标签或客户化标签,如 Struts 标签库中的标签。此外,通常把 Struts 框架中的 ActionForm Bean 也划分到视图模块中。ActionFormBean 也是一种 JavaBean,除了具有一些 JavaBean 的常规方法,还包含一些特殊的方法,用于验证 HTML 表单数据以及将其属性重新设置为默认值。Struts 框架利用ActionFrom Bean 来进行视图和控制器之间表单数据的传递,Struts 框架把用户输入的表单数据保存在 ActionFrom Bean 中,把它传递给控制器,控制器可以对ActionFrom Bean 中的数据进行修改,JSP 文件使用 Struts 标签读取修改后的ActionFrom Bean 的信息,重新设置 HTML 表单。
(2)模型
模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由 JavaBean或 EJB 组件实现。
(3)控制器
控制器由 ActionServlet 类和 Action 类来实现。ActionServlet 类是 Struts 框架中的核心组件。ActionServlet 继承了 Javax.servlet.http.HttpServlet 类,它在 MVC 模型中扮演中央控制器的角色。ActionServlet 主要负责接受 HTTP 请求信息,根据配置文件 struts-config.xml 的配置信息,把请求转发给适当的 Action对象。如果该 Action对象不存在,ActionServlet 会先创建这个 Action 对象。Action 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。
对于小型简单的应用,Action 类本身也可以完成一些实际的业务逻辑。对于大型应用,Action 充当用户请求和业务逻辑处理之间的适配器(Adaptor),其功能就是将请求于业务逻辑分开,Action 根据用户请求调用相关的业务逻辑组件。业务逻辑由 Java Bean 或 EJB 来完成,Action 类侧重于控制应用程序的流程,而不是实现应用程序的逻辑[28]。通过将业务逻辑放在单独的 Java 包或 EJB 中,可以提高应用程序的灵活性和可重用性。
当 ActionServlet 控制器收到用户请求后,把请求转发到一个 Action 实例。如果这个实例不存在,控制器会首先创建它,然后调用这个 Action 实例的 execute()方法。Action 的 execute()方法返回 ActionForward 对象,它封装了把用户请求再转发给其他 Web 组件的信息。用户定义自己的 Action 类,即 Action 基类的子类时,必须覆盖 execute()方法。在 Action 基类中返回 null。
(4)Struts 的配置文件 struts-config.xml
上面讲到的一个用户请求是通过 ActionServlet 来处理和转发的。那么,ActionServlet 如何决定把用户请求转发给哪个 Action 对象呢?这就需要一些描述用户请求路径和 Action 映射关系的配置信息了。在 Struts 中,这些配置映射信息都存储在特定的 XML 文件 struts-config.xml 中。在该配置文件中,每一个 Action 的映射信息都通过一个<action>元素来配置。
这些配置信息在系统启动的时候被读入内存,供 Struts 在运行期间使用。在内存中,每一个<action>元素都对应一个 org.apache.struts.action.ActionMapping 类的实例。
 
<script type="text/javascript" src="http://www.google.com/reader/ui/publis<script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=grc_p(%7bc%3a%22green%22%2ct%3a%22%5cu8fd9%5cu4e9b%5cu6587%5cu7ae0%5cu4e5f%5cu503c%5cu5f97%5cu4e00%5cu770b%22%2cs%3a%22false%22%7d)%3bnew%20grc"></script>se%22%7D)%3Bnew%20GRC">
Java课程设计——扫雷游戏程序 使用Java语言对扫雷游戏的复刻 阅读详情

相关推荐

先进封装技术 Part03---重布线层(RDL)的科普

RDL是一种在芯片封装过程中用于重新分布电气连接的技术。它通过在芯片表面或中介层上形成额外的布线层,重新分配芯片的I/O(输入/输出)位置,以适应不同的封装需求和提高电气连接的灵活性。

阿拉伯梳子的专栏 4697

Struts1总结——MVC框架的工作原理

作者:李东龙            MVC英文及Model-View-Controller,分别是模型(Model),视图(View)和控制(Controller)。MVC模式的目的是实现web系统的职能分工。                   View:即用户交互界面,对于web应用程序来说,可以概括为HTML界面。但由于应用的复杂性和规模性,界面的处理就会变得极具挑战。一款软件可能

大米时代 李东龙 8589

NOIP2008年普及组初赛题目答案及解析

NOIP2008年初赛详细题解

城南蝈蝈 926

Struts开发指南之MVC架构

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。 1、模型(Model)  模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.  2、视图(View)  视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。   3、控制器(controller)   控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对

!Java 2561

数学不好是原罪——高等数学笔记(汇总版)

这是本人之前考研的高数手写笔记,工科学硕数一考了146(满分150),笔记有一定参考价值,欢迎大家收藏借鉴。

xuuyann 5万+

小白跑WRF第五天,安装WPS和静态地理数据

小白跑WRF第四天,安装WPS一、WPS简介二、下载和安装WPSV4.0第一步、进入Build_WRF文件夹第二步、下载WPSV4.0第三步、解压WPS安装包第四步、修改intmath.f(必须执行)第五步、安装WPS三、修改namelist.wps 一、WPS简介 二、下载和安装WPSV4.0 第一步、进入Build_WRF文件夹 cd Build_WRF 第二步、下载WPSV4.0 下载WPSV4.0的安装包有以下三种方式: 利用Linux命令下载。 进入网站https://www2.mmm.uca

weixin_42372313的博客 2万+

Struts(1)Struts概念和原理

1 Structs概念Structs是一个web框架 Structs的不足之处,form表单有点鸡肋,action是单态(对网站的并发处理有影响)2 Structs原理 ActionServlet(该类由Structs框架提供)、structs-config.xml这是Structs的一个核心文件,该文件配置了actionForm和action,以及它们的对应关系 actionForm 用于存放数

ADreamClusive的博客 955

Silvaco TCAD仿真4——DeckBuild实战:从示例库到自定义设计

本文详细介绍了Silvaco TCAD仿真工具DeckBuild的实战应用,从示例库的使用到自定义设计的全过程。通过具体案例和参数修改技巧,帮助用户快速掌握TCAD仿真技术,提升半导体器件设计的效率和精度。特别适合需要从基础入门到进阶操作的工程师和研究人员。

weixin_29284657的博客 432

一、Struts基本介绍和使用

Struts的几个基本概念 1.struts是一个框架(frameset) 2.struts是一个web框架 3.框架提高了程序的规范同时,也约束了程序员的自由 4.struts是一个开源框架 Struts为什么有? struts的好处: 程序更加规范化 程序开发的效率提高了 程序的可读性增加 程序的可维护性增加了 struts的不足之处: 1.form表单有点鸡肋 2.action是单态(对网站...

也许是我送你哦 5万+

Test-Time Adaptation Induces Stronger Accuracy and Agreement-on-the-Line

TTA不管是否提高了OOD的泛化性都增强了线性的趋势,TTA的初始目的是为了增强OOD的表现,一个人可能会觉得TTA使得ACL更强的原因是他消除了ID和OOD之间的差距,因此所有模型间ID vs OOD的准确率接近于y=x这条线,但是实际上这个解释不能够反映我们的经验发现,因为虽然TTA将分布之间的偏移简化为一种放缩的分布,但是这个放缩的因子幅值可能很大,也就是α<<1但是r>>1,这就会导致很偏离y=x这条线,而且理论分析也是,虽然ID和OOD的差距很大,但是线性关系还在。

m0_62673638的博客 148

AI驱动的网络安全运维:智能化时代的安全保障

本项目旨在使用Python和AI技术构建一个智能化的网络安全运维系统,能够实时监测网络流量,检测潜在的安全威胁,并自动采取应对措施,从而提升网络安全管理的效率和准确性。具体内容包括:环境配置与依赖安装数据采集与预处理机器学习模型构建与训练实时威胁检测与响应实际应用案例通过本文的介绍,我们展示了如何使用Python和AI技术构建一个智能化的网络安全运维系统。

Echo_Wish 1290

Struts框架详解

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

MR_DULL的专栏 1603

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1425

Struts2框架的运行原理,以及开发流程,和数据库MylSAM引擎的简介

一MVC设计模式:1.   mvc:是一种使用模型(model)-视图(view)-控制器(control)三种模式相结合的一种开发web端应用的设计模式;2.   各层次作用:Model(模型)是应用程序中用于处理应用程序数据逻辑的部分;通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分;通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理...

fath_kevin的博客 1184

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

关于Struts框架简介

242

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Struts2学习总结

一、概述 1、是什么? Struts2轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层。低侵入性,与业务代码的耦合度很低。Struts2实现了MVC,并提供了一系列API,采用模式化方式简化业务开发过程。 1、运行在web层.负责处理请求的. 2、struts2已经帮我们封装了很多web中常用的功能(拦截器) 3、struts2 与 ...

Marmara 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

struts学习(1)——MVC模型及struts 2概述

1、MVC基本概念 MVC思想将一个应用划分成三个基本部分:模型(Model)、视图(View)、控制器(Controller)。 2、常用的MVC框架 (1)struts:后面将要学习的框架 (2)JSF:是一个标准,有Sun的参考实现和Apache的MyF

xiaomizaza的专栏 418

【Struts】——简介 & 原理

truts是对JSPModel2设计标准的一种实现,下面分别从模型(Model)、视图(view)和控制器3个部分介绍Struts的体系结构和工作原理。

梵高先生 2594

java框架之struts2

struts2 struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在mvc设计模式中, Struts2作为控制器(Controller)来建立模型与视图的数据交互,Struts2是Struts的下一代产品,实在struts1和webWork的技术基础上进行了合并的全新的Struts2框架。 其全新的Struts2的体系结构与Strut1的体...

沙漠皇帝本拉登 250

Struts简介

一、在介绍struts之前,先来了解一下什么是MVC框架吧。 1、MVC介绍         MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中三

刘杰 廊坊师范学院信息技术提高班十期 920

struts2的理解,struts2的流程

目录   简单的介绍一下Struts2(谈谈你对struts2的理解)。 简单说一下struts2的执行流程? 简单的介绍一下Struts2(谈谈你对struts2的理解)。 (1) Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为控制器(Controller)来建立模型与视图的数据交互。 struts2是在 struts 1 和 WebW...

高数老师的博客 1011

Struts概述

李绪成的一亩三分地 3013

【Struts】——宏观了解与原理

它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 原理: 下面我们从模型(Model)、视图(view)和控制器3部分介绍Struts的原理体系。

相由心生-心随相改~ 595
上一篇: 优快云中国程序员大调查
下一篇: JavaScript二级联动菜单代码
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值