Struts2

Struts2

Struts概述

Struts现在无疑是很老了,可能一些老项目还用Struts,但近五年已经基本被SpringMVC所取代。老技术虽然不用深入去研究,但还是要去了解和会用的,一方面扩展视野,另一方面更好的理解新技术的优势。

  • 是什么
    • Struts:2000年开发的Web层框架,符合Model-View-Controller三层架构的设计模式。
      • 名为 ActionServlet 的 Servlet 充当控制器(Controller)
      • 根据描述模型、视图、控制器对应关系的 struts-config.xml 的配置文件
      • 模型(Model)分为两个子系统,系统的内部数据状态的 ActionForm 与改变数据状态的逻辑动作 Action,在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC与JNDI
      • 视图(View)端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用
    • MVC
      • 控制器(Controller)- 负责转发请求,对请求进行处理。
      • 视图(View) - 界面设计人员进行图形界面设计。
      • 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
  • 为什么
    • 最开始是Servlet和JSP,最常见的做法是在JSP中加入业务和应用逻辑,或者在Servlet中通过println()来生成视图。
    • 为了把表现和逻辑分离,有了MVC设计模式,Struts就是最早的MVC的JavaWeb框架
    • 全新的Struts2的体系结构与Struts1差别巨大,因为Struts2是以WebWork为核心的,WebWork项目之前原Struts代码并不兼容,后来进行了合并
    • 为什么Struts会被淘汰呢?
      • 漏洞太多,曾多次引发重大事故
      • Spring MVC 框架,其天生就能与 Spring 无缝结合,开发效率和性能都要吊打 Struts2, 13年开始就已经有很多企业用 Spring MVC 代替 Strust2 了。
      • 区别:Struts2是一个请求一个Action,SpringMVC是单例模式的等,
        https://www.cnblogs.com/xu-cceed3w/p/9238137.html
        https://blog.youkuaiyun.com/qq_39949109/article/details/80230328

工作流程

  • Tomcat启动:加载应用的web.xml()
    • web.xml()中配置 struts2已经写好的一个过滤器作为控制器
    • web.xml是web项目的配置文件,可以很方便的开发web工程。
    • 比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
  • 实例化并初始化过滤器
    • 过滤器时用来过滤请求的,比如struts只会通过 action后缀的请求
  • 加载 struts.xml 配置文件
    • struts.xml:用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。
  • 客户端发送请求:xxx.action
    在这里插入图片描述
  • 请求到达过滤器
  • 截取请求的动作名称,并从struts.xml中找
    在这里插入图片描述
  • 找到后实例化动作类
  • 调用对应的动作方法,方法有返回值
  • 在这里插入图片描述
  • 根据返回值,找到name取值对应的结果视图
    在这里插入图片描述
  • 找到jsp页面
  • 响应浏览器,展示结果

在这里插入图片描述

参考资料

https://blog.youkuaiyun.com/qq_38903213/article/details/82112223

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值