Struts1 MVC框架的工作原理
MVC英文及Model-View-Controller,分别是模型(Model),视图(View)和控制(Controller)。MVC模式的目的是实现web系统的职能分工。
View:即用户交互界面,对于web应用程序来说,可以概括为HTML界面。但由于应用的复杂性和规模性,界面的处理就会变得极具挑战。一款软件可能有多个不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包含在视图上的业务流程的处理。通常用JSP来实现,把业务流程都给了模型层。
Model:主要负责业务流程的处理。是业务实际流程控制的地方,类似于在三层架构中的B层。实现系统中的业务逻辑,对其他层来说是黑箱操作,接受视图请求中的数据,返回最终的处理结果。通常可以用JavaBean或EJB来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图来显示,同时它也可以解释用户的输入并将他们映射为模型层的可执行的操作。其实就是一个分发器。
Struts就是一个MVC框架,下面Struts1 是如何实现MVC 的。如下图所示:
这是Struts1的一个分层情况。
M主要是ActionForm和JavaBean。负责程序的数据收集和业务处理,ActionForm属于Struts的框架的,这里的JavaBean是应用本身的业务逻辑。——这是我在网上找到的一种说法。
我不是特别赞同这样的划分,我认为Struts1是涉及不到M的。只不过是为了实现调用M做了一些基础性的操作,具体实现还是JavaBean。ActionForm其实可以不作为MVC中的任何一层。
V层主要是Jsp。主要用于动态页面的显示,Struts本身是没有V层的,作为一个框架只是一个大体结构。这个V层是由开发人员补全的。
C层是Struts的主要部分,包含了Struts框架本身的很多大部分内容,有:
struts-config.Xml Struts框架自身的配置文件,包含了很多配置信息。
ActionServlet Struts框架核心控制类(替代ervlet实现的抽象物)。
RequestProcessor 配合ActionServlet完成截取URL功能。
ActionForward
ActionMapping
…… ……
Struts通过内部对象及配置文件的协同工作,完成了对页面和Action灵活控制。从而实现Model和View的分离,降低他们之间的耦合程度。
Struts的执行流程如下图所示:
通过上述时序图对Struts1的工作流程描述,大家应该对Struts1 是如何实现MVC的应该有了一个大概的了解。
Struts1 MVC框架的工作原理的更多相关文章
- php面试专题---21、MVC框架基本工作原理考察点
php面试专题---21.MVC框架基本工作原理考察点 一.总结 一句话总结: 会的东西快速过,不要浪费时间,生命有限,都是一些很简单的东西. 1.mvc框架单一入口的 优势 是什么? 可以进行统一的 ...
- PHP面试系列 之框架(一)---- MVC框架基本工作原理
题:谈谈你对MVC的认识,介绍集中目前比较流行的MVC框架 考点: (1)MVC工作原理 (2)常见MVC框架 延伸: (1)单一入口的工作原理 (2)模板引擎的理解 (1)MVC工作原理 Model ...
- 阅读了这三篇文章,你也就基本理解了ASP.NET Core MVC框架的工作原理
<200行代码,7个对象--让你了解ASP.NET Core框架的本质>让很多读者对ASP.NET Core管道有深刻的理解,知道了ASP.NET Core框架针对每个请求的处理流程.在过 ...
- 《HiWind企业快速开发框架实战》(1)框架的工作原理
<HiWind企业快速开发框架实战>(1)框架的工作原理 1.HiWind架构 HiWind的基本架构如下: 持久层部分:同时为框架本身的业务服务,也为开发人员的自定义业务服务. 逻辑层: ...
- ssh框架的工作原理
struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...
- mvc和iis工作原理
学习IIS & MVC的运行原理 我一直疑惑于以下问题,从客户端发出一个请求,请求到达服务器端是怎样跟iis衔接起来的,而iis又是怎样读取我发布的代码的,并返回服务器上的文件.这其中是怎样的 ...
- SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- [Java] SSH框架笔记_SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- SSH三大框架的工作原理以及流程
Hibernate工作原理以及为什么要用 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
随机推荐
- Intellig Idea2017新建Web项目(tu'wen)
1.新建新工程项目 2.选择Java 和JDK版本 3.下一步Next(默认不勾选) 4.设置Project Name ,点击More Setting图标可以折叠.展开 然后Finish 我们可以看 ...
- 2015/12/25 ① 图灵测试 ② 安装jdk出现的问题 ③ 配置环境变量
①图灵测试 1,解释 图灵测试一词来源于计算机科学和密码学的先驱阿兰·麦席森·图灵写于1950年的一篇论文<计算机器与智能>.阿兰·麦席森·图灵1950年设计出这个测试,其内容是,如果电脑 ...
- Windows 异步IO操作
Windows提供了4种不同的方法来接收I/O请求已经完成的通知:触发设备内核对象.触发事件内核对象.可提醒I/O和I/O完成端口. Windows的异步I/O 当线程向设备发起一个I/O异步 ...
- 识别jar的编译JDK版本
解压jar,获取xxx.calss文件 dos命令行javap -verbose classname import java.io.InputStream; import java.io.PrintW ...
- rabbitmq kafka storm
rabbitmq:实时消息传递 kafka:消息的持久化 storm:使用拓扑逻辑进行
- Module in powershell
https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershell-6 ht ...
- hihocoder 第二十五周 spfa 最短路
其实hihocoder里的题目目前大都是模板题啊-.- 这周的是SPFA,暑假的时候有看过SPFA,不过一直用的都是Dijkstra,感觉spfa要更加简洁一点~~,今天找了一份之前一直都看不太懂所以 ...
- C# ListView 列宽调整 刷新
/*********************************************************************** * C# ListView 列宽调整 刷新 * 说明: ...
- 部署到Linux并配置Java定时任务
Java项目部署到Linux并配置定时任务 https://blog.csdn.net/u013850277/article/details/53447391 1.在Eclipse中将程序开发好,并进 ...
- [Tjoi2016&Heoi2016] 树
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4551 [算法] 树链剖分 时间复杂度 : O(QlogN) [代码] #includ ...