zoukankan      html  css  js  c++  java
  • Struts2.1的运行流程的简单分析(个人见解)

    Struts2.1的运行流程大致分为以下几个步骤:

    1.用户输入URL请求,该请求被StrutsPrepareAndExecuteFilter拦截,根据welcome-file属性的设置跳转到相应的jsp页面。

    2.用户在jsp页面发出的相应的处理请求。

    3.该处理请求也会被StrutsPrepareAndExecuteFilter拦截,首先清理当前线程的ActionContext和Dispatcher防止内存的泄露,接下来询问ActionMapper(Action映射器)来决  定这个请求是否需要调用某个Action,由于请求一般都是以Structs2.1默认的扩展名“.action”结尾,因此StrutsPrepareAndExecuteFilter把请求的处理交给    ActionProxy(Action的代理)

    4.ActionProxy通过Configuration Manager(配置管理器)询问Structs2.1的配置文件Structs.xml,找到需要调用的Action类以及相应的命名视图和物理映射视图的映射关系

    5.然后ActionProxy会创建一个ActionInvocation(Action的执行环境)的实例,并创建相应Action的实例来处理相应的请求

    6.在Action执行环境中首先调用的是Structs2.1自带的一系列内部拦截器或者用户自定义的拦截器(如session过期验证级访问权限验证等),然后在调用validate()方法对表单字段进行有效性的验证,验证过程出错可以调用addFieldError方法添加字段错误信息,并跳转到相应的错误处理页面。如果验证通过这调用指定Action中的execute()。

    注:本人是初学者,这是我从书中总结得到,不知道对大家有没有帮助,望大神吐槽

    转载请注明出处,谢谢

  • 相关阅读:
    C++快速排序
    C++冒泡排序
    为什么Excel创建一个新的工作簿就会初始化三个worksheet
    为什么游戏需要英雄
    2015.11.18——Lua中文教程
    [国家集训队2012]JZPFAR
    后缀数组小结?
    [BZOJ 2738]矩阵乘法
    [BZOJ 3221][Codechef FEB13] Obserbing the tree树上询问
    [BZOJ 4999]This Problem Is Too Simple!
  • 原文地址:https://www.cnblogs.com/zds-song/p/3718366.html
Copyright © 2011-2022 走看看