zoukankan      html  css  js  c++  java
  • 框架篇 -- 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之类型转换

  • 相关阅读:
    Asp.net弹出浏览器客户端确认对话框代码 Carlwave
    VS 2005 与SQL Server 2005整合优势在哪里?(from csdn.net) Carlwave
    如何让搜索引擎收录我的站点 Carlwave
    超强扩展性的DNNDotNetNuke模块功能分类列表(from 中国DNN) Carlwave
    DotNetNuke命名空间概述 Carlwave
    Most Popular Questions and Answers on ASP.NET Whidbey(from asp.net forums,write by ASP.NET Team) Carlwave
    火箭官方宣告麦蒂缺阵五周 季后赛前景蒙上阴影 Carlwave
    asp.net有效使用缓存(转) Carlwave
    《Business Rules Engine Overview》《业务规则引擎概述》write by Mark Kamoski Carlwave
    中国详细省市县自治区名称列表(含access数据库和sql2000备份数据库) Carlwave
  • 原文地址:https://www.cnblogs.com/lin-jing/p/8319565.html
Copyright © 2011-2022 走看看