程序开发过程中Struts为您带来怎样的好处

Struts旅程(四)MVC向struts MVC框架演变过程 上篇我们以登录为例讲解了struts配置,实现了使用struts框架进行登录的示例。一些名词已经在脑海中飘荡了。 上一篇提出了问题,使用Struts框架比不使用struts框架的好处在哪里的问题。以及由此讲述了静态ActionForm和动态ActionForm。本篇就第一个问题,以一个示例对用户信息的增删改查来展示基本的MVC框架到strutsMVC的过程。 版本一: 首先是创建一个jsp索 阅读详情

Struts是对MVC2模型的实现,于是许多讲解Struts的书用Servlet做了个符合MVC2要求的Web应用,再用Struts做了个同样功能的Web应用。但是在对两种方式的对比中,我发现Struts似乎并没有为开发者带来很大的方便。以下是我的对比:

视图:两者一样

控制器:利用Struts并不能完全摆脱这一层,开发者还是需要写Action.使用Servlet方式,也是写一个同Action一样的Servlet充当控制器。两者在代码量上没有区别,在程序逻辑上也一样;

模型:两者一样

两者的主要差别:Struts多了一个ActionServlet

既然编写一个类似Acition的Servlet就可以充当控制器,那么Struts在提供Action后,ActionServlet的意义何在?

ActionServlet的作用是拦截用户请求,并将用户请求转发给合适的Action,而自己的Web应用是将用户请求直接发送给功能等同于Action的自定义Servlet.ActionServlet在拦截过程中注入了一个ActionForm对象和一个ActionMapping对象。经过这个过程后,Struts为开发者带来了如下实际的好处:通过ActionMapping,Action在转发时,并不是转发给一个实际的页面。而是转发给在strus-config.xml中已经配置的对象。这意味着,在不改变Action代码的情况下就可以更换其转发的页面; 如果没有ActionMapping,当有100个Action都要更换转发页面时,我们不得不在庞大的Web应用中找出这100个Action,修改其转发页面,然后再重新编译它们。有了ActionMapping后,只需要在struts-config.xml中修改相应的配置即可,这样既查找方便,又不用重新编译。

现在的一个主要问题是:Web应用一旦投入使用之后,更换转发页面的可能性有多大?Action转发的页面,一般都是直接向用户展示的JSP页面。软件工程中,一切和用户直接打交道的部分都是极易发生变化的。

当然Struts肯定还有其它方面的便利之处,但是这些还并不足以打动我去使用Struts,即便它还提供了丰富的标签库。

最终一个重要的原因让我认为我的确需要采用像Struts这样的框架。当然,首先我一直是相信MVC模型所倡导的理念的:将视图和模型分开。把和用户交互的部分独立出来的好处是明显的。

首先如前面所述,和用户交互的部分是最易发生变化的,视图的独立意味着变化的隔离; 然后是将视图分离出去后,开发者可以将精力集中在对业务流程的处理上。一个大型的系统,最复杂的最核心的部分就是处理业务流程。可是实际的情况是,繁琐地界面处理占用了程序员大量甚至是大部分的时间。

我相信了MVC模型带来的好处,所以开发Web应用时我一定会采用这种模式,但是我并不需要Struts,因为Servlet就可以让我实现MVC模型。我的这种想法似乎很自然,但是这里面隐含着一个前提是:我每次开发Web应用,都必须有意识的严格按照MVC规范来写。这看起来不是很困难,但是做起来却很难。因为有时候在业务处理过程中嵌入几行关于界面的代码似乎是非常自然而且简单的,于是我就真的这样做了。一段时间之后,我突然发现我的业务处理过程和界面显示部分又混杂在一起了。至此我才真正相信我要使用Struts.

因为Struts可以规范程序员的行为。也许Struts并不能降低实际的代码量,甚至有时候不使用Struts的代码可能更简洁,但是按照Struts写出来的Web应用却一定是符合MVC模型的。就我认为,这是采用Struts的最大好处。规范程序员的行为,让程序在不知不觉中写出符合优秀架构的代码,这应该是所有框架的共同目的,也应该是根本目的。

SWD下载调试接口原理深度剖析 作为ARM嵌入式工程师,下载调试器都应该知道,但你真正了解SWD如何下载调试的么?ARM 芯片通过什么物理接口和什么方式连接完全取决于芯片Debug子系统的架构如何? 阅读详情

相关推荐

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

Struts优缺点剖析

 Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易。Struts框架为开放者提供了一个统一的标准框架,通过使用Struts作为基础,开发者能够更专注于应用程序的

anyhill的专栏 885

告别懵圈!用CANoe手把手解析ISO15765多帧传输(附实战报文分析)

本文详细解析了ISO15765多帧传输协议在汽车电子诊断中的应用,通过CANoe实战演示了从首帧发送到流控协商再到连续帧传输的完整流程。文章包含嵌入式系统诊断协议的深度分析,特别适合UDS和CAN总线开发人员学习多帧传输机制及常见问题解决方案。

weixin_30813225的博客 281

Struts 的优点

Struts是一个用来快速开发MVC应用程序的MVC框架,它使用一个过滤器调度程序作为控制器。在编写一个MVC应用程序时,程序员的工作包括提供一个控制器和编写各种必要的动作类。控制器必须能够完成下面5项任务。 (1)根据URI字符串确定应该调用哪个动作。 (2)对相关的动作类进行实例化。 (3)如果动作对象存在,就用请求参数填充该动作的属性。 (4)如果动作对象存在,就调用相应的动作方法。

stryker的专栏 882

企业微信-审批控件中的外部选项的应用全流程完美解决方案

完美解决企业微信所有JS-SDK调用问题 完美解决苹果和PC端不适配的问题

qq_45195039的博客 5859

从DCI-P3到sRGB:跨媒体色彩转换的矩阵奥秘与实践

本文深入解析从DCI-P3到sRGB的色彩空间转换技术,揭示矩阵运算的核心原理与实践技巧。通过实战案例展示如何正确处理白点差异、伽马曲线转换等关键环节,帮助影视从业者解决跨媒体色彩匹配问题,确保作品在不同设备上呈现一致的视觉效果。

weixin_28709649的博客 328

Struts 的优缺点

Struts框架的优点与缺点标签:教育   优点     1,struts简单、易懂。容易被人采用,功能强大。     2,通过采用模型-视图-控制器(MVC)设计模式,使用struts可以开发使用 JAVA Servlets和javaServer Pages的高性能、面向事务的WEB应用程序。      3,struts

simoGAO的专栏 1195

钉钉多维表格开发

从0到1完成钉钉多维表格开发SDK对接与实践案例。

沉修所长,勇逐新机;安而不怠,静而思变 3596

Struts程序开发全攻略

Struts程序开发全攻略 1.概述这篇文章主要通过一步一步的操作来讲述在Windows系统中开发Struts程序的过程。本篇文章注重实践,相关概念不会详细讲述。本文并没有提到有关CVS的安装和配置,如果感兴趣,可以参考另外一篇文档:CVS的配置和使用2.相关工具在开发过程中我们主要使用以下工具:l         Apache2.0.46                主

TELE的博客 2939

【Python搞定车载自动化测试】——Python实现车载以太网DoIP刷写(含Python源码)

随着智能电动汽车行业的发展,汽车=智能终端+四个轮子,而人工智能也发展越来越快,Python语言使用越来越广,本章节主要介绍如何使用Python语言基于Pytest自动化框架来实现DoIP诊断自动化测试。首先回顾一下DoIP诊断基础知识:DoIP(Diagnosis over Internet Protocol)是一种用于车辆诊断的网络通信协议。它基于现代互联网技术,允许通过以太网或IP网络进行车辆诊断和通信。

测试领域技术分享 3794

YOLO26中的PPM空间金字塔池化:改良设计与多尺度特征提取教程

在计算机视觉的语义分割任务中,准确理解图像中的上下文信息至关重要。例如,在街景图像中,可能同时存在远处的小汽车和近处的大建筑物,网络需要具备捕获多尺度上下文信息的能力。例如,要正确识别图像中的"船",不仅需要看到船本身的特征,还需要理解周围的水面环境。金字塔的每一层对应不同的池化尺度,从细粒度到粗粒度,形成了多层次的特征表示。PPM(Pyramid Pooling Module)正是为了解决这一问题而提出的模块,它通过构建金字塔形状的池化结构,有效地聚合不同尺度的上下文信息,从而提升语义分割的精度。

LXY_LOVE36的博客 82

struts2是什么,有什么作用,怎么使用,有什么好处?

注:参考文章:https://blog.youkuaiyun.com/qq_36754544/article/details/55062391struts2是一种重量级的框架,位于MVC架构中的controller,可以分析出来,它是用于接受页面信息然后通过内部处理,将结果返回。从架构的角度来讲,就是联系了模型层和视图层,将用户要求按照业务逻辑执行并且返回结果。简要概括一下它的作用,无非在于传递参数,将请求发...

admin_gc的博客 1万+

【TCAD】Sentaurus 中的“陷阱trap”仿真设置

允许使用有限的数据集名称 SFactor 规范,例如 DeepLevels , xMoleFraction , 和 yMoleFraction (从兴奋剂档案中读取) eTrappedCharge 和 hTrappedCharge (从指定的文件中读取 DevFields 在 File 部分)或 PMI 用户字段 PMIUserField0...10 (从指定的文件中读取 PMIUserFields 在 File 部分)。给定的陷阱截面 eNeutral 陷阱是多种多样的 Xsec 项目参数。

荷塘阅色 1307

Struts请求相应过程

 下面的时序图很好的体现了Struts的请求相应过程:

zhoudm2005 641

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Hibernate+Spring+struts这三个框架的好处

SpringSpring中的概念说明:控制反转:主要是当主类调用被调用类中的方法时,不是在主类中直接创建被调用类对象,而是由Spring容器创建。反射注入:就是由Spring容器创建的被调用类的实例注入到主类中。面向方面的aop编程:主要是为了实现处理日志、异常、权限等。利用Spring的好处:利用控制反转的好处:就是在反复调用主类时不用在主类中反复地创建被调用类的实例,而

wenyawen的专栏 998

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java教程分享:使用Spring框架能带来哪些好处?

Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。 Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。spring是开源的轻量级框架,也是在Java开发中的一个经典的框架。spring核心主要两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转 比如有一

xiaoxijinger的博客 343

Struts标签的三个好处

标签 标签的三个好处: 使用不用关心web应用程序的路径和ActionServlet的映射路径。 可以自动附加jsessionid参数进行url重写。 可以对参数信息进行url编码。 备注: 标准标签也有标签的后两个作用。 实验步骤: 把ActionServlet的映射路径由*.do改为*.html,这时候需要修改前面案例中的jsp页面中的超链接,由这个错误引出标签的讲解。

4426

struts2的好处

1.Struts2没有像struts1那样跟servletAPI和strutsAPI有着紧密的耦合,Struts2的应用可以不依赖于servletAPI和strutsAPI.Struts2的这种设计属于无入侵式设计,而struts1却属于侵入式设计. 2.Struts2提供了拦截器,利用拦截器可以进行AOP编程,如实现权限拦截功能. 3.Struts2提供了类型转换器,我们可以把特殊的请求参数

a962601835的专栏 592

Struts2中struts.xml文件的加载过程

1.启动tomcat过程中,加载web.xml文件。 2.找到web.xml中的org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter类。 3.在StrutsPrepareAndExecuteFilter中调用了init方法,创建一个了InitOperations()对象,并且调用了initDispatcher

Leo专题 3138

struts2配置常量<constant name="struts.devMode">,将值修改为true(开发模式有什么好处)的好处

在配置struts2中配置常量有时候会启动开发模式。那么为什么要启动开发模式,开发模式有什么好处? 当struts的配置文件修改后,系统是否自动重新加载该文件,其中默认值为false,在开发阶段最好true 1、启用了开发模式,可以输出日志记录,便于程序设计。 2、启动开发模式以后,你在struts.xml配置文件中修改后就不用重新部署项目了。 3、开发模式下设为true,这样可以打印

mrdu_somefun的博客 465

在eclipse中搭建struts2框架的详细过程

今天想学习struts2框架,所以搭建了一个struts框架,记录一下搭建struts2的详细过程。 一:搭建环境: eclipse:Mars.1 Release (4.5.1) jdk:jdk1.7.0_79 Tomcate:apache-tomcat-8.0.32二:下载struts2相关的jar包。 可以从官网下载,下载步骤如下: 1,http://struts.apach

whbing1471的博客 2万+

struts技术有什么优点、好处?

优点: Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Strut

l18649805795的博客 651

struts2的国际化实现过程乱码问题

写下这篇文章方便自己和大家以后查看,结合亲身经历,亲测可行 struts2的国际化实现过程–刚开始写的时候按照网上说的那样配置完,结果一测试,乱码 国际化资源信息用于Web应用的各页面提供国际化支持。Java9已经允许使用UTF-8字符集保存国际化资源文件,因此这种国际化资源文件可包含中文,无需向Java9以前那样使用native2ascii命令进行处理 这里主要介绍如何解决java9之前国际化实...

chen_bin_的博客 546
上一篇: 对项目的一些看法
下一篇: strut1.2代码生成器
J2EE_dev
博客等级 码龄18年 237粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值