• Struts2 执行流程(简化版)


    一、简介 

        为什么说是Struts2的简化版, 因为这是在不了解Struts2的源码前提下提出的, 如果你有基础, 那么你可以根据源码分析执行流程,在这个过程中我们来看看Struts2 执行流程。

        ps:这篇文章非常的没有意思。

    二、Struts2执行流程

       Struts2执行流程也叫生命周期,可以分为服务器启动前和处理请求二个过程.

     服务器启动:

     1. 加载项目web.xml

     2. 创建Struts核心过滤器StrutsPrepareAndExecuteFilter 对象, 执行filter à  init() (注释:此时不会执行业务先关的方法)

     struts-default.xml,    核心功能的初始化

     struts-plugin.xml,     struts相关插件

     struts.xml    用户编写的配置文件

     访问-处理请求:

     3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建Action代理对象(维护一个Action引用)

     4. 执行默认拦截器栈中定义的18个拦截器

     5. 执行action的业务处理方法

     三 、核心初始化文件

     struts-default.xml, 详解

       目录:struts2-core-2.3.4.1.jar/ struts-default.xml

     内容:

    1. bean节点指定struts在运行的时候创建的对象类型比如一些Struts2的一些内部对象: Action代理对象等

    2.指定struts-default包  【用户写的package(struts.xml)一样要继承此包 】

     package  struts-default  包中定义了: 

                 a.  跳转的结果类型 

                       dispatcher    转发,不指定默认为转发

                       redirect       重定向

                       redirectAction  重定向到action资源

                       stream        (文件下载的时候用)

                 b. 定义了所有的拦截器

                      定义了32个拦截器!  为了拦截器引用方便,可以通过定义栈的方式引用拦截器,   此时如果引用了栈,栈中的拦截器都会被引用!

                       defaultStack

                       默认的栈,其中定义默认要执行的18个拦截器!

                c. 默认执行的拦截器栈、默认执行的action

                     <default-interceptor-ref name="defaultStack"/>

                    <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

       如果您希望从源码角度理解Struts2的执行流程,推荐一篇文章 https://blog.csdn.net/laner0515/article/details/27692673

  • 相关阅读:
    Laravel报500错误
    本地部署laravel项目遇到500错误 软链接
    Class 'Maatwebsite\Excel\ExcelServiceProvider' not found
    laravel5.8报500服务器错误
    phpstudy安装redis
    如何在FastAdmin中使用Ajax发送请求?
    关于mysql处理百万级以上的数据时如何提高其查询速度的方法
    判断一个数组里面的所有键所对应的值是否是为int型
    将json字符串中含有非int型的数字字符全部改为int型
    php判断json是否是一个标准的json字符串
  • 原文地址:https://www.cnblogs.com/achievement-active/p/9354348.html
Copyright © 2020-2023  润新知