我们都知道SSH是目前比较流行的一个Web应用程序开源框架,而struts又是之中的领头框架,究竟它有怎样的力量竟然可以博客IT界的眼球??一起来看!!

一、演变之处--MVC

要了解struts必须先来了解MVC,MVC并不是Java语言所特有的设计思想,也不是Web程序所特有的思想,它是所有面向对象程序设计语言都要遵守的设计规范。简单来说,MVC将一个应用程序分为三个部分:Model(模型)、View(视图)和Controller(控制器)。这三个部分以最小的耦合来协同工作,从而最大限度的提高程序的可扩展性。

那么它们之间如何运行才能达到上述的目标呢?请看下图:

而struts2就是MVC的一种表现形式。下面就一起去探索初露羞面的这位姑娘!

二、struts的小秘密

1.为什么使用

.它是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;

.其次,它是个开源项目得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;

.它对其他技术和框架显示出很好的融合性。

2.struts2应用程序的开发:

1)在web.xml文件中定义核心filter来拦截用户的请求:

由于Web应用是基于请求/响应架构的应用,所以不管哪个MVC Web框架,都需要在web.xml文件中配置该框架的核心Servlet或者filter,这样才可以让该框架介入到Web应用中:

<!-- 配置Struts2的核心过滤器 -->                   <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

2)如果需要以post方式提交用户的请求,则需要定义包含表单数据的jsp页面。但是如果仅仅是以get方式来发送请求,则无需进行该步骤;

3)定义处理用户的Action类:这一步是MVC框架中必不可少的,Action就相当于controller,主要负责调用Model中的方法来处理用户的请求。

4)配置Action。一直以来我们都有一种思维定势,使用xml文件对Action进行陪孩子,而这个过程就是指定哪个请求对应哪个Action进行处理,从而让核心控制器根据该配置来       创建合适的Action实例,并调用该Action的业务控制方法:

<action name="login" class="cn.itcast.shop.adminUser.action.LoginAction">
.............
</action>

5)配置处理结果和物理视图资源之间的对应关系:

当Action处理用户请求结束后,通常会返回一个处理结果可以认为该名称就是逻辑视图的名称,该逻辑视图需要和制定的物理资源产生关联,所以我们需要配置处理结果之间的关系:

<!-- 配置用户模块的Action --><action name="user_*" class="userAction" method="{1}"><result name="registPage">/WEB-INF/jsp/regist.jsp</result><result name="input">/WEB-INF/jsp/regist.jsp</result><result name="loginPage">/WEB-INF/jsp/login.jsp</result><result name="login">/WEB-INF/jsp/login.jsp</result><result name="loginSuccess" type="redirectAction">index</result><result name="quit" type="redirectAction">index</result><result name="checkcodeFail">/WEB-INF/jsp/regist.jsp</result></action>

3.实现的流程:

从图中可以看出,struts2框架的控制下,用户请求不再需要向jsp页面发送,而是由核心控制器strutsPreparedAndExecuteFilter 调用 jsp页面来生成响应,此处的调用并不是直接调用,而是将请求forward到指定的jsp页面上。

关于struts2的分析就先到这里,SSH其他框架的讲解请期待接下来的博客!

小荷才露尖尖角之struts的秘密相关推荐

  1. 元宇宙,小荷才露尖尖角

    从闻所未闻到骤然爆火,脱胎于科幻小说的元宇宙,在过去的一年时间里迎来了集中爆发.尽管各路玩家对元宇宙进行了诸多着墨,但时至今日其从概念向实处进发仍然存在现实差距. 放眼行业,虽然元宇宙游戏.直播.社交 ...

  2. 数睿数据2022新年致辞:小荷才露尖尖角,早有蜻蜓立上头

    2021年是经营丰收的一年,在外部经济下行的大环境下,公司经受住了严峻的考验,秉持为客户.社会创造价值的理念,千方百计提升经营质量和组织运作效率.在全体数睿数据员工的共同努力下,公司经营业绩取得了历史 ...

  3. c语言传球游戏,传球游戏_小荷才露尖尖角19792014_新浪博客

    传球游戏 邓丞希 东方小学三年级 今天下午,我在赏识作文班上玩了一个有趣的传球游戏. 老师把我们分成两个组,每组三双筷子和一个乒乓球. 游戏开始了.首先,我们组的第一个同学用筷子夹起了乒乓球,准备传给 ...

  4. 日式风格小荷才露尖尖角

    简洁,秩序,干净,是所有人对日式风格的第一印象.日式风格的特点: 1.悠然自得,返璞归真,清新自然 2.善用原木色的搭配 3.讲究关联使用,以收纳为最 4.空间意识强,讲究 小 精  巧

  5. 小荷才露尖尖角,和Flutter应用说你好

    第一个Flutter应用 今天,我们就来一起阅读一下Flutter项目初始化后的代码! 创建应用 通过AS创建一个新的Flutter工程,我们会得到一个默认的计数器应用示例 项目的dart代码主要在l ...

  6. MSP未来可期,Bespin Global小荷已露尖尖角

    都说2017年是云MSP(公有云管理服务提供商)元年,那么2018年又有哪些新的发展趋势和热点呢?从近日Gartner公布的公有云MSP魔力象限也许可以看出一些端倪. 1 MSP市场的"魔力 ...

  7. 【小学信息技术教资面试】《蜻蜓立小荷》教案

    1.题目:蜻蜓立小荷 2.内容: 3.基本要求: (1)要求配合教学内容有适当的板书设计. (2)教学中注意师生间的交流互动. (3)学生学会粘贴和旋转图片. <蜻蜓立小荷>教案 一.教学 ...

  8. 玩不转大数据就别勉强了,或许“小数据”才是真正的终南捷径

    如今大多数人会经常听到"大数据",如果选择一个词来代替"大",大部分人的脑海里会出现"海量"."巨量"的字眼,但是,数据 ...

  9. h5商城模板_“公众号+小程序”才是做微信商城的正确方式

    如果你问做商城是用公众号好还是小程序好,而回答你只做其中一个的,那么你可以不理他了! 我的答案是:公众号 + 小程序!必须一起做 小程序是一个趋势. 虽然小程序在微信里有着很多独立入口,但是有好些重要 ...

最新文章

  1. 后端_Laravel
  2. ***程序一般的启动方式
  3. Linux/UNIX网络编程之API
  4. 深度神经网络(DNN)的正则化
  5. JRebel适用于Gradle Spring Boot应用程序
  6. 深度相机之TOF原理详解
  7. 如果张东升是个程序员,你还有机会吗?
  8. addcslashes与stripcslashes
  9. IC卡读写器开发说明
  10. 基于steam的游戏销量预测 — PART 3 — 基于BP神经网络的机器学习与预测
  11. 基于SpringBoot的在线学生请假管理系统的设计与实现毕业设计源码
  12. php cms 301,www域名301
  13. 拼写错误python能正常启动吗_拼写检查
  14. Chrome隐私设置错误,您的链接不是私密连接
  15. mysql 1146错误 修复6,MySQL中出现错误1146时出现问题
  16. 基于TIVA库函数的TM4C1294XL使用笔记|TI单片机
  17. CATIA V5 R24 2014安装教程
  18. CAD特性窗口,快捷特性窗口等不显示图形类型问题
  19. 异常全家桶来咯,异常捕获,异常抛出,自定义异常
  20. Python: queue.Queue

热门文章

  1. md500代码,异步电机,基于28379D,带无速度传感器控制,参数辨识,同步调制等功能
  2. 计算机系统的四种启动方式是,详解电脑为何有四种不同的启动设备教程
  3. 数字音视频知识点汇总(一)
  4. 英语流利说 第13天
  5. 007-Cobbler批量自动化部署Windows10和Server 2019及激活
  6. 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
  7. 一笔画 java_NYOJ42 一笔画问题
  8. 计算机为啥启用不了网络发现,win7系统“网络发现”功能启用不了的解决方法...
  9. pandas用法小结
  10. 互联网日报 | 微信公众号界面再改版;快手发布“快手联盟”;首家农商行理财子公司获批开业...