MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
控 制:有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角 色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到 Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数 填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
模 型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从 ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向 ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的 FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。 每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。

Struts工作原理相关推荐

  1. Struts工作原理及其优缺点详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.Struts工作原理 MVC即Model-View-Controller的缩写,是一种常用的设计模式.MVC 减弱了业务逻 ...

  2. struts工作原理(图解)

    Struts2框架的工作原理: 1.服务器启动,会加载我们的xml配置文件中的内容. 2.服务器启动之后,过来一个servlet请求,如user类中的save方法.请求过来先过过滤器(strutsPr ...

  3. struts2中struts.xml和web.xml文件解析及工作原理

    转自:https://www.cnblogs.com/printN/p/6434526.html web.xml <?xml version="1.0" encoding=& ...

  4. 浅析Struts 体系结构与工作原理(图)

       Struts 体系结构是目前基于java的 web系统设计中广泛使用的mvc构架. 基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用模 ...

  5. Struts自定义拦截器拦截器工作原理

    0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...

  6. Struts 体系结构与工作原理(图)

       Struts 体系结构是目前基于java的 web系统设计中广泛使用的mvc构架. 基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用模 ...

  7. Struts 体系结构与工作原理 图

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Stru ...

  8. Struts2的工作原理

    Struts2是在Struts1的基础上发展而来的,Struts是WebWork和Struts1的集合,采用的正是WebWork的核心,更多的是WebWork. 下载的Struts2源代码文件 主要的 ...

  9. struts2的核心和工作原理

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

最新文章

  1. GdiPlus[6]: 五种画刷总览
  2. 2017 3月16日,上午
  3. Eclipse修改console输出最大行数及(IOConsole Updater)
  4. 知乎高赞:985计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?
  5. cricheditview实现语法高亮和行号_Markdown语法详解及工具介绍
  6. Java——字符串分割[split()]和截取[substring()]
  7. visio 2020 最新版安装过程及注意事项
  8. springboot整合quartz进行数据库存储
  9. cesium 经纬度绘制点_Cesium搜索经纬度并标点
  10. DiffPDF(pdf文件比较工具)官方正式版V6.0.0 | diffpdf如何使用 | 含diffpdf的软件安装教程
  11. ES 经纬度距离 php,php 根据两点的经纬度计算距离
  12. Vue学习笔记:获取文件唯一标识 md5值
  13. 苹果电脑怎么删除移动硬盘里的文件,苹果电脑无法删除移动硬盘文件
  14. export default (imported as router) was not found_开关插座IEC/EN/AS/NZS澳洲SAA认证
  15. Outlook2019添加126邮箱方法
  16. 如何设置potplayer播放器把人声凸显出来并降噪?
  17. Linux 内存性能检测工具
  18. UVA - 1218 Perfect Service(树形dp)
  19. Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)
  20. WhatsApp营销之群组(二):搜群

热门文章

  1. shell脚本逻辑判断,文件目录属性判断,if,case用法
  2. Python的故事_two
  3. setTimeout 定时器的使用
  4. Linux下用netstat查看网络状态、端口状态
  5. cogs 539. 牛棚的灯
  6. 匿名函数 闭包 ( 7 章 )
  7. HDU4007 Dave [杂题]
  8. 数据库设计三大范式应用实例剖析(转载)
  9. 广域网之间是通过路由器互联吗?—Vecloud
  10. 在Windows上部署NTP Server