zoukankan      html  css  js  c++  java
  • Struts2框架的处理过程

    一个请求在 Struts2 框架中的处理大概会经过以下几个步骤:

    • 1、客户端发出一个指向 Servlet 容器(例如Tomcat)的请求。

    • 2、这个请求会经过几个过滤器 Filter(ActionContextCleanUp 可选过滤器、其他 Web 过滤器如 SiteMesh 等),最后到达 FilterDispatcher 过滤器。

    • 3、接着 FilterDispatcher 过滤器被调用,FilterDispatcher 询问 ActionMapper 来决定这个请是否需要调用某个 Action。

    • 4、如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给 Action 对象的代理(ActionProxy)。

    • 5、ActionProxy 通过配置管理器(Configuration Manager)读取框架的相关配置文件(struts.xml 以及它包含的 *.xml 配置文件),找到需要调用的 Action 类。

    • 6、找到需要调用的 Action 类后,ActionProxy 会创建一个 ActionInvocation 的实例。

    • 7、ActionInvocation 在调用 Action 的过程之前,会先依次调用相关配置拦截器(Intercepter),执行结果返回 结果字符串。

    • 8、ActionInvocation 负责查找 结果字符串 对应的 Result,然后执行这个 Result,再返回对应的结果视图(如JSP等等)来呈现页面。

    • 9、再次调用所用的配置拦截器(调用顺序与第7步相反),然后响应(HttpServletResponse)被返回给浏览器。

    Struts2的优点:

    • Struts2 是非侵入式设计,即不依赖于Servlet API 和 Struts API.

    • Struts2 提供了强大的拦截器,利用拦截器可以进行 AOP编程(面向切面的编程),实现如权限拦截等功能。

    • Struts2 提供了类型转换器,可以很方便地进行类型转换,例如将特殊的请求参数转换成需要的类型。

    • Struts2 支持多种表现层技术,如 JSP、FreeMarker、Vectocity 等。

    • Struts2 的输入验证可以对指定的方法进行验证。

  • 相关阅读:
    类加载机制
    PTA(BasicLevel)-1094 谷歌的招聘
    PTA(BasicLevel)-1023 组个最小数
    异构图神经网络笔记-Heterogeneous Graph Neural Network(KDD19)
    PTA(BasicLevel)-1014 福尔摩斯的约会
    PTA(BasicLevel)-1013 数素数
    PTA(BasicLevel)-1012 数字分类
    PTA(BasicLevel)-1010 一元多项式求导
    PTA(BasicLevel)-1009 说反话
    PTA(BasicLevel)-1008数组元素循环右移问题
  • 原文地址:https://www.cnblogs.com/litingshi/p/6292502.html
Copyright © 2011-2022 走看看