zoukankan      html  css  js  c++  java
  • struts2运行流程

      Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开。

    首先看一个简单的系统开发流程图(没有框架的时候):

    struts中ognl表达式用于把model层上的展示在jsp上。

    1.启动服务,加载web.xml实例化StrutsPrepareAndExecuteFilter过滤器

    2.在实例化StrutsPrepareAndExecuteFilter的时候会执行过滤器中的init方法加载struts.xml

    3.浏览器发起请求,会被StrutsPrepareAndExecuteFilter拦截到,根据请求的uri(hello)找到相应的Action类,并且创建Action对象,执行相应的hello方法。

    4.返回视图标志,展示success.jsp

    用一张图来描述一下Struts2的运行流程:注(action充当MVC中的M和C。)

     更加深入的还有拦截器运行过程。

     

    服务器启动时实例化StrustPrepareAndExecuteFilter,读取struts所有的配置文件,把struts.xml中的每一个Action实例化,当一个请求访问的时候,StrustPrepareAndExecuteFilter会把请求拦截下来,匹配一个ActionMapper,然后ActionMapper创建ActionProxy,然后去执行默认拦截器栈,在执行Action,然后返回结果,然后默认拦截器再反向执行(做一些运行期的监控和清理工作,不是每一个拦截器都执行后置拦截),最后响应结果返回给页面。

  • 相关阅读:
    JavaScript -基础- 变量、常量
    Python 执行SQL带参数
    Python 装饰器
    Bootstrap
    python 数据如何保存到excel中--xlwt
    django 中下载文件与下载保存为excel
    AttributeError: 'cx_Oracle.Cursor' object has no attribute 'numbersAsStrings'
    Python Django 之 基于JQUERY的AJAX 登录页面
    Python Django 之 登录页面
    Python pycharm 引入需要使用的包
  • 原文地址:https://www.cnblogs.com/ljq2622/p/10471812.html
Copyright © 2011-2022 走看看