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

物联网 Mixly-智能楼道灯 一、实验目的及要求 熟悉声音及人体红外传感器用法。 二、实验原理与内容 1.使用声音传感器实现声控灯功能。 2.使用人体红外传感器实现人体检测控制灯功能。 三、实验软硬件环境 硬件:Arduino、LED灯、声音传感器、人体红外传感器 软件:Mixly IDE 四、实验过程(实验步骤、记录、数据、分析) 核心代码截图 声控灯: 人体红外检测灯: 3.实验效果图: (1)、声控灯总线连接: (1)、声控灯声音大于一某个值时灯亮,经过2秒后灯灭: (3)、人体红外检测灯连接总线: (4)、人体红外 阅读详情
AI摘要

本文对比了Struts2与Servlet的优劣,介绍了Struts2作为MVC框架如何简化开发流程,提高代码可读性和可维护性。Struts2不仅在配置、测试和传参等方面表现出色,还提供了丰富的功能,如全局异常处理、灵活的页面导航和强大的验证框架。

注:参考文章:https://blog.youkuaiyun.com/qq_36754544/article/details/55062391

struts2是一种重量级的框架,位于MVC架构中的controller,可以分析出来,它是用于接受页面信息然后通过内部处理,将结果返回。

同时struts2也是一个web层的MVC框架,那么什么是struts2中的MVC呢?

我们可以联想一下struts2的使用流程,我们需要先通过过滤器,调用URL判断使用哪个Action,再由Action决定返回结果,继而 提交请求。那么这就构成了一个MVC架构,由过滤器(Controller)控制选择动作Action(Model),获得结果Result(View),向控制器提交请求。

所以从宏观架构的角度来讲,struts2就是联系了模型层和视图层,将用户要求按照业务逻辑执行并且返回结果。

简要概括一下它的作用,无非在于传递参数,将请求发送给合适的控制器,在控制器中调用业务接口,最后将业务接口返回的结果返回给指定的视图。

但是说了这么多,我们还没有看到struts2的优越之处,所以我们为什么要选择他作为控制层呢?这里我们需要了解一下,在struts2框架出现之前,我们是使用sevlet来进行操作的,也就是说struts2是淘汰掉了servlet,那么让我们来做一个对比。

我们主要从三方面来对比:

①配置:当我们配置servlet的时候,我们需要在web.xml中配置很多,也就是说一个servlet我们就需要配置一段代码,这样不仅会导致web.xml中的代码过于繁多,并且不利于分组开发,需要手动配置二级的URL-PATTERN。

而在使用struts2的时候就很好的解决了这个问题,我们引用专门的XML文件,配置package属性和action属性,大大增加了配置代码的可读性,而且结构层次清晰,提升了分组开发的效率。

②测试:当我们需要测试我们的代码的时候,使用servlet的我们必须要配置两个与容器相关的参数,HttpServletResponse和HttpServletRequest,这样就会增加我们的工作量,而struts2则可以很好的独立完成单元测试。

③传参:每次传参的时候,使用servlet我们就必须手动操作作用域,如果serlvet方法非常多的情况下,就会很大程度上影响开发,在struts2中,我们的默认过滤器栈中自带了自动收参的方法,极大的便利了我们的开发。

在其他的方面其实struts2也有很大的优势,比如全局异常的设置比如拦截器的配置比如...

简要概括使用流程:

①导入jar包

②配置核心过滤器

③创建Action,书写代码并配置返回值

④配置配置文件

总结一下struts2的好处:

struts2将应用分层,使产品结构清晰,能够减少代码的维护量,同时能够使开发人员分层实现,也就是说Java程序员可以只专注于业务逻辑的实现

项目开源,使用及扩展方便

提供了强大的全局异常处理机制;

Result方式的页面导航,通过 Result 标签很方便的实现重定向和页面跳转;

通过简单、集中的配置来调度业务类,使得配置和修改都非常容易;

提供简单、统一的表达式语言来访问所有可供访问的数据(OGNL);

提供标准、强大的验证框架和国际化框架;

提供多种表现层的技术支持和页面标签,大大简化开发;

拥有简单的插件,只需要放入响应的 jar 包,任何人都可以扩展 Struts2 框架,比如:

自定义拦截器、自定义结果类型、自定义标签等,为 Struts2 定制需要的功能,不需要什么特殊的配置,并且可以发布给其他人使用。

拥有智能的默认设置,不需要另外进行繁琐的设置。使用默认设置就可以完成大多数项目程序开发所需的功能。

文章主要用于梳理自身知识,如有侵权联系删除。


OpenDataLab 大模型训练数据集下载记录 大模型 训练数据集 阅读详情

相关推荐

Pythia: A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning——“预取”论文解读

参考传送门: 1. Hardware Prefetching笔记 2. 全球百科——缓存预取 3. 百度百科——缓存数据预期技术 目录0. 什么是Hardware Prefetching(本节内容不包括在论文中)1. 简介1.1 关于Hardware Prefetching的一些关键信息1.2 现阶段方法的缺陷1.3 论文团队的目标1.4 核心思想2. 必要的背景知识介绍2.1 强化学习(Reinforcement learning)2.2 为什么说强化学习是一个好的解决思路3. 解决方法与思路3.1 Py

Pinkgranite86的博客 2166

struts2 简介

一、struts2 是一个框架,属于属于表现层,需要我们基于这个框架下进行开发。 特点: 可读性 可维护性 可拓展性。 javaEE 开发根据职责的纵向划分:表现层 业务层 持久层。也就所说的javaEE的三大框架(ssh)。 表现层:负责处理与界面交互的相关操作。(struts2/spring)。 业务层:负责复杂的逻辑业务计算和判断。(spring) 持久层:负责将业务逻辑数据进行...

好好学习,天天向上! 2275

使用LogisticRegression和LightGBM模型对信贷违约进行预测----基于kaggle比赛数据

3.分离数值型变量与类别型变量,发现有些数值型变量因为输入不规范,比如数值中含有字符(28_,_10000_等)被划分为类别型变量 ,比如 'Age','Annual_Income','Num_of_Loan', 'Num_of_Delayed_Payment', 'Changed_Credit_Limit','Credit_Mix','Monthly_Balance', 'Outstanding_Debt' ,'Amount_invested_monthly'等。三、分箱,woe编码,计算IV值。

I_am_a_big_tiger的博客 1682

struts2详细理解

struts2理解

weixin_42694511的博客 1454

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

山景BP10_128DBG开发板通过蓝牙连接手机放歌实验回顾

最近在学习上海山景公司的BP10_128DBG的开发板,因为网上关于BP10开发板的帖子也比较少,在学习的时候也没有太多的参考资料,基本上都是官方的历程。蓝牙放歌这个demo对我来说也比较复杂,特写下此博客进行记录、总结,大家有需要的可以参考。

weixin_56646002的博客 2019

对struts2简单理解,未完待续

一、struts2的概念 来自百度百科:         Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。          是由传统Struts1和WebWork两个经典框架发展而来,但主要核心还是Webwork。采用拦截器的机制来处理用户的请求,使...

高数老师的博客 1000

告别Link180!在Ansys Mechanical 2020R2中正确启用Cable280绳索单元(附Beta选项开启指南)

本文详细介绍了在Ansys Mechanical 2020R2中启用Cable280绳索单元的全过程,包括Beta选项的开启步骤、建模技巧及高阶应用。Cable280作为专为绳索仿真设计的单元,相比传统的Link180单元,在大变形模拟和计算效率上表现更优,特别适合斜拉桥、电梯牵引绳等工程场景。

weixin_33711647的博客 405

Struts2快速入门,超简单详细的快速入门教程

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

2401_84002482的博客 2399

反激电源反馈环路设计:UC3842的FB脚与COMP脚接法对比与选型

在开关电源设计中,PWM控制器与光耦的反馈环路接法直接影响系统稳定性与动态响应。UC3842作为经典电流模式控制器,其FB脚和COMP脚分别对应内部误差放大器的输入与输出,决定了环路补偿由内部还是外部承担。FB脚接法利用内部基准和运放,设计简单、成本低,适合小功率适配器;COMP脚接法旁路内部运放,补偿网络外置,动态响应快、精度高,适合中大功率工业电源。理解两种接法的原理与差异,有助于在反激电源设计中优化环路补偿,提升负载调整率和批量一致性。

weixin_31887307的博客 316

【TCAX相关】Python 官方手册下载页面(中文+英文)

Python 官方手册下载页面(中文+英文) 中文: https://docs.python.org/zh-cn/3.8/archives/ https://docs.python.org/zh-cn/3.6/archives/ 英文: https://www.python.org/doc/versions/ https://docs.python.org/3/archives/ https://www.python.org/ftp/python/doc/ ...

Seekladoom的博客 1012

Struts2介绍

1、Struts2是什么? Struts2是Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架。 2、为什么要用Struts2? Struts1:也是apache开发的一套mvc的开源框架。在2005年之前非常流行。 弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。 Struts2:在long long ago,有一个设计超前的框架XWork,后来推出了XWork1和WebWork2。Struts2就是apache和OpenSymphon

四水六年的博客 1192

蓝牙配对鉴权过程深度剖析:Just Works/Numeric Comparison/Passkey Entry/OOB 协议流程

当你新买的智能手表与手机配对时,是否遇到过这样的情况:有时只需在手机上点击 "确认" 即可完成配对,有时却需要在手表上输入手机显示的 6 位数字,而连接车载蓝牙时可能又需要输入固定密码?这些差异背后,是蓝牙配对鉴权机制在默默工作。蓝牙配对鉴权是设备间建立安全连接的核心环节,直接关系到数据传输的保密性和设备身份的真实性。​

byte轻骑兵的技术小窝 3571

struts2为什么用拦截器?有什么好处?起什么作用?

struts2为什么用拦截器?有什么好处?起什么作用? 指尖冰凉°d5 | 浏览 5521 次  问题未开放回答 |举报 提示该问题下回答为网友贡献,仅供参考。 推荐于2016-08-28 05:30:26 最佳答案 拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和

evilcry2012的专栏 4297

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Struts 2 工作原理

时间向前,技术也在不断更新中,有时间我来复习一下Struts 2 的工作原理。 Struts 2初始化过程: struts2的启动入口为 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  struts2的启动就是执行它的init()方法。我觉得它的启动就是为了一个目的,那就是为了创建出Conta...

iteye_12492的博客 149

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

struts2中 # % $ 的区别和用法

struts2 OGNL,struts2 表达式语言,Struts2 中OGNL表达式的用法,Struts2 #,表达式语言的好处,Struts2 $,struts2 井号,星号,百分号 表达式语言主要有以下几大好处:         1. 避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;

Erica_1230的专栏 1972

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

为什么我们要用struts2,springMVC,spring

今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用v

knightdev的博客 395

struts2注解的作用

Struts2注解 1 Struts2注解的作用 使用注解可以用来替换struts.xml配置文件!!! 2 导包   必须导入struts2-convention-plugin-2.3.15.jar包,它在struts2安装包下lib目录中。 3 通过配置文件学习对应的注解 @Action来代替<action>元素! l...

weixin_34281537的博客 111

java struts2 作用_struts2是什么?如何使用?

一、struts2是什么1.概念2.struts2使用优势以及历史二、搭建struts2框架1.导包(解压缩)struts2-blank.war就会看到2.书写Action类public class HelloAction {public String hello(){System.out.println("hello world!"); return "success";}}Vie...

weixin_29643235的博客 751

struts2的原理及作用

struts2的目的是什么 MVC模式应用于web程序设计 给我们带来什么样的好处?         (1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。         (2)  丰富的标签库,大大提高了开发的效率.         (3) Struts2提供丰富的拦截器实现。         (4) 通过配置文件,就可以

面包侠的博客 1782

struts2拦截器的使用及作用

作用 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方...

huanglitai的博客 966

struts2中Action类如何获得作用域对象

Struts2 学习: 第三章,struts2中Action类如何获得作用域对象。2009-03-27 23:03现在有点喜欢Struts2这个框架了。在struts1中我们的Action的execute方法中是将请求和响应当做参数传递给了Action。而在Struts2中Action的execute方法是没有任何的参数。哪我们如何去获得作用域对象,没有作用域对象就没有办法

Anna的专栏 3802

struts2 package name作用

首先更正一点,struts配置文件中的package name属性不是解决重名问题的,而是用来实现继承的,namespace才是用来解决重名的,前台和后台可以这样分 ,这样在两个包里都有test Action时在url地址中用/front/test或/back/test就能区分开了,别外继承时用extends="front"就是继承自第一个package(默认继承是default);若是第一个

4599

Struts2的请求作用域与转发

Struts2的请求作用域分为: application request response session四种,获得到这四种作用域的方式有两种。 1.解耦合的方式 解耦合:就是不依赖servlet,是Struts2自己的。拿到的是Map集合 获取方式:application //定义map集合,键是string,值是object。然后在下面写set,get方法,一定要写,不然页面获...

qq_44424498的博客 380

Struts2_各jar包作用

Struts2 Core Libraries  必须引入的包  struts2-core.jar——Struts2的核心包  xwork-core.jar——Command模式框架,WebWork和Struts2都基于xwork  commons-logging.jar——Java日志工具类包  freemarker.jar——模板引擎,一个基于模板生成文本输出的通用

injavahome的博客 1807

struts2中获取作用域的2种方式,RequestAware

Servlet中有三大作用域: request : 作用于一次请求, session:作用于一个浏览器中,在浏览器不关闭的情况下多次响应都有效 servletContext(application):作用于一个web应用中,在整个程序中都有效,因其作用范围太大所以在开发中用的很少。 那么在struts2中如何获取这三个作用域呢? 有两种方式: 1. 使用ServletActionContext获取...

Java开发,人工智能,边缘计算,致力于掌握前沿技术 896
上一篇: 关于struts2中直接操作作用域和操作值栈的对比以及值栈的理解
下一篇: struts2的工作原理和工作流程
admin_gc
博客等级 码龄9年 7粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值