zoukankan      html  css  js  c++  java
  • struts机制

    Struts运行机制

    请求到达容器

    客户端发送一个http的request请求,-》http请求根据地址会到达服务器,-》然后服务器根据url会达到容器(如tomcat)-》容器会根据url、配置到达具体项目找到web.xml-》然后会在web.xml发现struts2的配置...从而会进入struts控制阶段。

    容器内部处理

    1.客户端发起一个http请求,指向tomcat容器。
    2.请求经过一系列(主要是上面的三层,按顺序ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)
    3.最终FilterDispatcher询问ActionMapper是否调用某个action来处理这个请求(request)
    4.如果ActionMapper确定调用action,此时FilterDispatcher会把请求处理交给ActionProxy。
    5.然后ActionProxy通过Configuration Manager、struts.xml询问框架的配置文件,找到调用的action类
    然后ActionProxy生成,即创建一个ActionInvocation调用实例。
    6.ActionInvocation实例使用命名模式来调用,在调用action的过程前后,涉及到相关的拦截器 (Intercepter)的调用。
    7.Action调用完成后,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。即Result信息返回给ActionInvocation,然后产生一个reponse响应,发给客户端。

    Struts2拦截器

    1.strtus中所有的配置文件,即package都必须继承struts-default.xml如<package name="com.kay.struts2" extends="struts-default" namespace="/test">就像java中的所用对象继承Object一样。

    2.struts中的拦截器会有一个拦截器栈,可以配置一个默认的拦截器栈,如<default-interceptor-ref name="mystack"></default-interceptor-ref>,其中mystack是默认拦截器栈名称。如果一个Action中引用了其他的拦截器,那么默认的拦截器将会失效,包括拦截器栈。

    3.struts配置加载顺序,顺序如下:

    Default.properties                     该文件存放在strtus2-core-xxx.jar中的org.apache.struts2中,默认全局配置

    Struts-default.xml                      该文件存放在strtus2-core-xxx.jar的根目录下,加载默认的组件,这些组件包括一系列的拦截器和转换器

    Struts-plugin.xml                        如果为应用配置了插件,则插件中的jar文件会存在这个文件,它会被自动加载。

    Strtus.xml                                     自己创建的文件,用于存放自定义的组件或拦截器,这个文件可以覆盖default.properties中的默认配置

    Struts.properties                        自己创建的文件,不能改名字,用于修改全局配置,一般我们会把修改全局配置放在struts.xml中,但是如果有struts.properties这个文件,将会覆盖前面的,也即是前面的配置会被后面的给覆盖掉。

  • 相关阅读:
    订阅发布模式概念基础
    HTML与CSS之display:none
    HTML与CSS之导航栏
    微信小程序-笔记
    基于设计模式的用户管理
    微信小程序-开发组件-笔记1
    JavaScript异常处理
    微信小程序开发-笔记
    封装类实现增删改查
    脚本方式实现数据库增删改查
  • 原文地址:https://www.cnblogs.com/yanghuiping/p/4003005.html
Copyright © 2011-2022 走看看