• 框架篇 -- Struts2


      Struts框架很很早接触的一个框架知识,已经不那么频繁使用了,但是总结一下,复习一下还是很有必要的;

      Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。提供了 Web 应用程序开发过程中的一些常见问题的解决方案:

    • 页面导航活动进行管理
    • 对来自用户的输入数据进行合法性验证
    • 统一的布局
    • 可扩展性
    • 国际化和本地化
    • 支持 Ajax
    • 表单的重复提交

      Struts 2Struts的下一代产品,是在 struts 1WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2体系结构Struts 1的体系结构差别巨大。Struts 2WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1Struts 2有着太大的变化,但是相对于WebWorkStruts 2的变化很小。虽然Struts2struts1在名字上差别不大,但Struts2编码模式与struts1几乎可以说是不一样的。那么既然有了struts1,为何还要推出struts2。主要是因为struts2有以下优点:

    1. 在软件设计上Struts2没有像struts1那样跟Servlet APIstruts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet APIstruts API Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。
    public class OrderListAction extends Action {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
                throws Exception {
        }
    }
    1. Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
    2. Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。
    3. Struts2提供支持多种表现层技术,如:JSPfreeMarkerVelocity
    4. Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。
    5. 提供了全局范围、包范围和Action范围的国际化资源文件管理实现

    Struts2 从本质上讲已不是从 Struts1 扩展而来, 说它是一个换了品牌标签的 WebWork 更合适

    Struts1 升级到 Struts2:

    • Struts1 里使用 ActionServlet 作为控制器; Struts2 使用了一个过滤器作为控制器
    • Struts1 中每个 HTML 表单都对应一个 ActionForm 实例. Struts2 , HTML 表单将被直接映射到一个 POJO.
    • Struts1 的验证逻辑编写在 ActionForm ; Struts2 中的验证逻辑编写在 Action .
    • Struts1 , Action 类必须继承 org.apache.struts.action.Action ; Struts2 中任何一个 POJO 都可以是一个 Action .
    • Struts2 在页面里使用 OGNL 来显示各种对象模型, 可以不再使用 EL JSTL

    简单认识了Struts2下面我们就来开始Struts2的深尤浅入深学习;

    Struts2开发前奏

      我们知道Struts的重点在于拦截器,那么我们自己通过拦截器来实现一下一个web小项目,在Struts2学习之前帮助理解;

    Struts2的入门学习

      配置struts.xml,简单入门

    Struts2的处理流程

       Struts2的核心在于拦截器,所有的拦截器会在到达Action前加载完,而Struts2提供的一些核心功能也是通过拦截器来完成的,拦截器中间嵌套调用拦截器,形成了链式操作,可以具体通过断点调试看一下拦截器的执行流程;

    Struts2的基本配置

       Struts2配置文件的再解读;

    Struts2与Servlet的API解耦

       Struts2提供了用于获取Servlet中相关对象的方法;

    Struts2的结果类型

       Struts2提供了对应Servlet中请求转发和请求包含的操作;

    Struts2的通配符和动态方法调用

    Struts2之类型转换

  • 相关阅读:
    Stereo Matching文献笔记之(一):《Cross-Scale Cost Aggregation for Stereo Matching》读后感~
    机器视觉之 ICP算法和RANSAC算法
    基于语义约束与 Graph Cuts 的稠密三维场景 重建
    RANSAC算法详解
    三维重建技术在无人机方面的应用如何?三维重建未来的学术前景如何?
    尺度空间(Scale space)理论
    网速调控、带宽限制原理探究
    Cisco交换机IOS升级
    Nmap
    vi实用命令集
  • 原文地址:https://www.cnblogs.com/lin-jing/p/8319565.html
Copyright © 2020-2023  润新知