Struts2概念解析

Struts2的核心概念 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。 立即下载

有些时间,我总是忘记为什么有struts2?  struts2到底是个什么东西?(虽然平时写很多代码,但是偶尔会冒出这个问题,呵呵,做个记录)


1.Struts2是什么?

java web应用框架,封装MVC框架的思想和servlet

2.为什么会有Struts?

早期大家都用MVC来使项目的流程更加清晰,更加易于维护,但是各个公司对MVC的理解不同。导致许多争议,但都说自己的才是真正的MVC。

所以sun公司就制定了一个规范来解决这个问题。那就是定义了Struts2框架。(当然不仅仅是这个方面)

(打个比方:你们公司老板不固定上下班。有一天老板说早上9点上班,5点下班,做个规定。当然做这个规定给公司会带来很多好处)

4.Struts2运行原理?

上一个官方原理图


运行原理:

一个请求在Struts2框架中的处理大概分为以下几个步骤
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,
这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是
(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

更好明白原理请看struts2入门案例:http://blog.youkuaiyun.com/todaymz/article/details/8743712

5.Struts2优缺点?

(网络搜集,未证实)

优点:
         1.Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程。
         2.使用OGNL进行参数传递
         3.强大的拦截器
         4.易于测试
         5.易于扩展的插件机制
         6.模块化
         7.全局结果与声明式异常
缺点: 

           对Servlet的依赖性过强
           对Action执行的控制困难
           对事件支持不够
           struts2对ajax的支持还不太理想。

6.Struts2重要知识?

 OGNL
 XWOrk
 ValueStack
 支持EL
 Action核心
 Result基本原理
 Struts核心标记库
 拦截器
 非UI标记
 资源文件与国际化

7.Struts2和Struts1比较?

Struts2和Struts1都是MVC框架,Struts1对service依赖更大,Struts2是Webwork2基础上面发展而来的,并非Struts1的升级。

下面给点阿帕奇公司公布的比较文档:

http://www.cnblogs.com/tongzhiyong/archive/2007/02/24/655178.aspx

----------------------我是分割线---------------------------


转载请说明出处:http://blog.youkuaiyun.com/todaymz/article/details/8744038



Seedance 2.5、HappyHorse 1.1与豆包Seed 2.1:一周内三大模型技术参数分析 音频生成延续原生音画同步架构,将文本、画面、音频统一序列建模,生成过程同步产出匹配口型的原声音频,支持中、英、日、韩、德、法、阿拉伯7种语言唇形对齐,无需二次调音。从行业趋势看,30秒直出、4K分辨率、7语种唇形同步正在成为视频生成的标配,编程Agent化和多模态理解正在成为语言模型的标配。技术狂奔的同时,监管在同步收紧。我理解这里的关键在于,视频生成模型的商业化落地不仅取决于生成质量,更取决于推理效率——生成一段15秒1080P视频需要多少秒、消耗多少算力,直接决定了模型的商用可行性。 阅读详情

相关推荐

告别Overleaf!本地LaTeX环境配置:VSCode+TeXLive完全指南(Windows/Mac双平台)

本文详细介绍了如何在Windows和Mac平台上配置本地LaTeX环境,使用VSCode和TeXLive打造高效的专业写作工作流。从TeXLive安装到VSCode插件配置,再到高级技巧与性能优化,帮助用户摆脱Overleaf限制,实现更快速、更私密的学术写作体验。

3c4x5z6v7b的博客 952

Struts2 基本概念

一、概述 Struts2是一个基于MVC设计模式的web应用框架,相当于一个servlet,在MVC设计模式中,Struts2作为控制器Controller来建立模型与视图的数据交互。 在传统Servlet+jsp的结构中Servlet要响应请求,分发请求,处理业务,这样看来Servlet就太臃肿了,而且业务逻辑也全是硬编码,不利于维护。Struts就是来干掉Servlet的 在MVC设计模式...

青春的法法 720

Win10管理员权限的‘暗门’:从mmc.exe被阻止,聊聊UAC与自动提权那些事儿

本文深入解析Windows 10中UAC(用户账户控制)与自动提权机制,探讨mmc.exe被阻止的深层原因及解决方案。从UAC工作原理到自动提权机制,再到具体诊断与修复步骤,帮助用户理解并解决权限管理问题,同时平衡安全性与便利性。

weixin_30521161的博客 419

什么是struts2

一、struts2框架 1.struts2框架的定义 Struts是最早的Java开源框架之一,它是MVC设计模式的一个优秀实现。 Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml) Struts是最早的java开源框架之一,它是MVC设计模式的一个优秀实现。 Struts定义了通用的Controller(控制器)...

partingwind的博客 682

IEEE Transactions on Industrial Informatics(TII) 投稿须知- Initial Submission

请注意,您可以在作者中心查看稿件的当前状态,如:在EIC办公室、分配给AE、AE邀请审稿人、AE指定审稿人、正在审稿、等待AE决定、等待EIC决定。为了确保公正的评审过程,我们要求在稿件中没有任何作者的身份(不包括作者的姓名、传记、隶属关系、求职信、签署的版权表格、识别脚注、致谢等)。如果你的手稿有很大一部分已经在会议上发表过,论文必须隐藏所有作者的身份,这样会议论文就可以被引用,就好像它是由不同的作者写的一样。请注意,通常你的技术成就是根据被引用的次数来评估的,而不是根据发表的论文数量。

loinleeai的博客 4428

5G 网络的移动性管理上下文对比介绍

5G 网络的移动性管理上下文对比介绍 4G/5G MM移动性管理机制对比 5G引入了新移动性管理状态,通过mobility pattern(移动方式)实现按需的移动性管理等。 MM的相关状态分为一下几种: RM状态(用户注册管理 注册态/非注册态)和CM状态(用户连接态/空闲态)独立;RM状态标识UE是否注册到网络,CM状态标识UE和核心网的信令连接是否存在。 RAN侧引入RRC-inactive state:UE(用户端)对于CN(核心网)而言处于连接态,对RAN(接入网)而言处于Ld..

m0_59032675的博客 4819

Struts2的概念及工作原理

Struts2 struts2简介 struts2是apache组织的一个开源项目,是一个重量级web框架,由struts1和WebWork合并而成。 struts2对ServletAPI进行了全面的封装,提供了一整套自己的处理流程、处理方式和数据存取方式。在顶层设计 上和SpringMVC相似,但底层具体实现差别很大。 现今SpringMVC已经成为主流的web框架,struts2则由于学习成本高、性能相对较低等逐渐被淘汰。 struts2结构: StrutsPrepareAndExecuteFi..

Mr_TXQ的博客 825

一张图讲透银行个人外汇业务逻辑和实操

个人外汇业务主要分为结售汇和外币兑换两类,前者满足日常跨境需求,后者因投机属性多数银行已暂停。业务核心是利用汇率波动实现货币兑换,满足支付或投资需求。交易涉及客户分类、主流币种、多种渠道和汇率计算规则,需区分直接/间接标价法判断汇率走势。银行通过"货币兑换"科目核算损益,采用期末折算确认盈亏。监管要求包括5万美元年度额度、合法渠道、真实性原则及大额申报等。随着跨境金融数字化发展,掌握基础逻辑和合规要求是安全参与外汇业务的关键。

银行信息系统应用架构详解 288

struts2基本概念

Struts2基本概念 struts2是什么? struts是一个严格按照MVC分层思想,把客户端和服务端响应流程编写的开发框架。 MVC分层原理 这是现在最基本的分层方式,结合了SSH架构。 1.Pojo层就是对应数据库表的实体类。 2.Dao层就是使用了hibernate连接数据库、操作数据库(CRUD)。 3.Service层:引用对应的Dao数据库操作,在这里可以编...

weixin_43151099的博客 404

hwasan实例分析踩内存之七:CamX进程chifeature2base怪异的Cause: use-after-free

摘要:本文分析了高通camx进程中的指针异常crash问题,通过构建hwasan版本确认存在内存踩踏现象。日志显示为"use-after-free"类型错误,具体为线程T175672在已释放内存区域执行写入操作。堆栈分析表明ChiFeature2Base::PipelineDestroyCb()函数访问了已被ChiFeature2Base::DestroyFeatureData()释放的pPipelineData对象。该问题源于多线程环境下内存管理不同步,导致释放后仍被引用。解决方案通过

1077

ESP32S3 TLS 握手WIFI可用但是在蜂窝热点下卡死:排查方法与根因

设备卡在等。

摸鱼专家 86

Struts2实现MVC(概念解析)

框架简述 什么是框架:框架就是能完成一定基础功能的半成品软件。在没有框架时,所有的工作都要从最底层做起;但是有了框架后,它可以为我们提供一定的基础功能,我们就可以在框架的基础上进行开发,而无需自己去实现那些底层的基础功能,大大提高了开发的效率和质量

a_good_programer的博客 4070

Marvell 88Q6113 如何制作一个完整的量产固件88Q6113_flash.bin并进行烧录

本章节介绍如何基于Marvell工具链,制作一个完整的量产固件88Q6113_flash.bin,集成用户自定义的配置文件 config.bin,用于88Q6113的Flash烧录。注:Marvell 88Q5072 与 Marvell 88Q6113 的配置流程是一样的。

老板来份猪脚拼叉烧的博客 2008

Struts2工作原理以及核心思想

Struts2JAVA基础学完,肯定是要面临三大框架的学习的,作为初学者,了解三大框架的原理,设计目的是首要任务,只有在把握了框架的设计目的以后,才能有针对性的取学习使用框架,这里从strue2框架开始,介绍三大框架,让新手能有一个总的了解跟思维导图。 1. 什么是Struts2? Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典

小疯子的博客 8万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【Structs2】最全的 struts2 面试题

史上最全的 struts2 面试题

Java仗剑走天涯 3326

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Struts2学习第一天——struts2基本流程与配置

struts2框架 struts2快速入门 Struts2 处理流程 模仿struts2流程完成入门程序 struts2的流程分析以及工具配置 struts2配置(重点) 1.struts2配置文件加载顺序 2.关于Action的配置 关于常量配置 Action 关于Action类的创建方式介绍 关于action的访问方式 在struts2框架中获取servlet API Result结果类型

lutianfei的专栏 3万+

假人有限元模型

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

struts2登录注册示例_Struts 2动作示例教程

struts2登录注册示例If you are working on Struts 2, you will spent a lot of time developing Struts 2 Actions. This article is aimed to provide you more details about Struts 2 Action classes and different way...

从零开始的教程世界 359

Struts2(一)

1. Struts2基本概念 1.1 三层架构和三大框架各自的位置 1.1.1 三层架构 我们的开发架构一般都是基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器/服务器。在JavaEE开发中,几乎全都是基于B/S架构的开发。那么在B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的web层。它负责接收客户端请求,向客户端响

Wgy1993的博客 784

Java Struts2 (一)

一、Struts2简介 1、Struts2概述 Struts2是Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架。 2、Struts2的来历 Struts1:也是apache开发的一套mvc的开源框架。在2005年之前非常流行。   弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。 Struts2:在long long ago,有一个设计超

github_39294367的博客 9135

struts2一

day42_Struts2一 一,概述 1.什么是Struts2 \ 用我们自己的话来说: struts是web层框架, 相当于Servlet 作用: 1. 获得请求参数 2. 调用业务 3. 分发转向 2.常用的WEB层框架 Struts2 SpringMVC 二,Struts2入门 1.环境下载 下载地址 http://struts.apache.org/download.cgi; 导入jar struts的jar比较多,可以从Struts官方提供的demo中拿到必要的jar就行. 在

l18594yj的博客 301

struts2面试问题_Struts2面试问答

struts2面试问题Struts2 is one of the famous framework for developing web application in java. Recently I have wrote a lot of Struts2 Tutorials and in this post, I am listing down some of the important Str...

从零开始的教程世界 356

struts2的入门介绍

目录1. 对 struts2 的粗浅认识2. 快速上手搭建简单的 struts2 框架2.1 导包2.2 创建一个简单Action类2.3 在 src 下书写 struts2.xml 文件2.4 在 WEB-INF 下的 web.xml 中配置 核心过滤器2.5 测试3. struts2 访问流程3.1 表面流程3.2 框架流程4. 配置解释 1. 对 struts2 的粗浅认识 ...

qq_40206203的博客 683

Struts2基础

1、Struts2概述 1.1 理解MVC原理 MVC(Model-View-Controller 模型-视图-控制器),是一种程序设计理念。目前,在Java Web应用方面MVC框架有很多,常用的流行框架有Struts、JSF、Tapestry、Spring MVC等,在这些框架之中,Struts和Spring MVC框架的应用最为广泛。 到目前为止,Struts框架拥有两个主要的版本,分...

pan_junbiao的博客 1152

Struts2入门及基本概念

Struts2基本概念掌握Struts 2的执行过程能够使用Struts 2框架开发简单应用能够使用Struts 2实现数据校验掌握Struts 2框架的标签使用 基本概念 掌握Struts 2的执行过程 能够使用Struts 2框架开发简单应用 能够使用Struts 2实现数据校验 掌握Struts 2框架的标签使用 ...

肖肖的博客 470

史上最全的 struts2 面试题

转载:https://blog.youkuaiyun.com/baidu_37107022/article/details/77454237 1 Struts2与Struts1的联系与区别 为什么要用Struts2 struts1与struts2都是mvc框架的经典实现模式。 Struts2不是从Struts1升级而来,而是有WebWork改名而来,而WebWork只是Xwork加了很多WEB拦截器而已. ...

csdn_life18的博客 741

Struts2框架入门

简单学一学struts2框架的使用,会持续更新ing Struts2

weixin_44247784的博客 903
上一篇: Struts2入门经典实例
下一篇: Hibernate入门经典实例
益达_Sir
博客等级 码龄14年 20粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值