zoukankan      html  css  js  c++  java
  • 【Struts 2.x权威指南第三版-读书笔记】3.2 Struts 2的基本流程

    Struts 2: 核心控制器StrutsPrepareAndExecuteFilter,(需要用户实现)业务(逻辑)控制器,(需要用户实现的)业务逻辑组件

    • 3.2.1 核心控制器StrutsPrepareAndExecuteFilter
      • 作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求,所以请求都会交给Struts 2框架处理
      • Struts 2框架获得了用户请求后,将根据http请求决定调用哪一个业务控制器(Action)
        • Struts 2应用中的Action都被定义在struts.xml文件中,定义Action时,指定了Action的name属性【指定处理哪个http请求】和class属性【指定该Action的实现类】
        • Struts 2用于处理http请求的Action实例,并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器没有于Servlet API耦合,显然无法处理用户请求。
        • Struts框架提供了系列拦截器,可将HttpServletRequest请求中的请求参数解析出来,传入Action中,并回调Action的execute方法来处理http请求。
    • 3.2.2 业务控制器
      • Action类通常包含了一个execute方法,该方法返回一个字符串——该字符串就是一个逻辑视图名,当业务控制器处理完用户请求后,根据处理结果不同,execute方法返回不同的字符串。
      • Action配置
        • Action所处理的URL
        • Action组件所对应的实现类
        • Action返回的逻辑视图和物理资源的对应关系
    • 3.2.3 Struts 2的模型组件
      • 模型组件已经超出了MVC框架的覆盖范围。对于Struts 2框架而言,通常没有为模型组件的实现提供太多的帮助。
        • Java EE应用里的模型组件,通常指系统的业务逻辑组件。而隐藏在系统的业务逻辑组件下面的,可能还包含了DAO、领域对象等组件
      • 通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。
      • 当业务控制器需要获得业务逻辑组件的实例时,通常是通过工场模式或利用IoC容器(Spring容器)来管理业务逻辑组件的实例
    • 3.3.4 Struts 2的视图组件
      • Struts 2允许使用多种视图技术,如FreeMarker、Velocity和XSLT等。
      • 当Struts 2的控制器返回逻辑视图名时,逻辑视图并未与任何的视图技术关联,仅仅是返回一个字符串,该字符串作为逻辑视图名。
      • 在struts.xml文件中配置Action时,不仅需要指定Action的name属性和class属性,还要为Action元素指定系列<result.../>子元素,每个<result.../>子元素定义一个逻辑视图和物理视图之间的映射。Struts 2默认使用JSP作为视图资源,使用其他视图技术,要配置<result.../>子元素时要指定type属性
    • 3.3.5 Struts 2的运行流程
  • 相关阅读:
    将PHP文件生成静态文件源码
    Entity Framework Code First 学习日记(6)一对多关系
    Entity Framework Code First 学习日记(5)
    Entity Framework Code First 学习日记(3)
    Entity Framework Code First 学习日记(7)多对多关系
    Entity Framework Code First学习日记(2)
    Entity Framework Code First 学习日记(8)一对一关系
    Entity Framework Code First 学习日记(9)映射继承关系
    Entity Framework Code First 学习日记(10)兼容遗留数据库
    Entity Framework Code First 学习日记(4)
  • 原文地址:https://www.cnblogs.com/chenhongarticles/p/9157197.html
Copyright © 2011-2022 走看看