• SSH框架之Struts(2)——Struts的执行流程之配置文件


      上篇我们大致了解了一下採用了Struts框架的web页面运行流程。

    接下来的几篇我们通过Struts的源代码来学习一下Struts的内部原理。

      当server启动的时候。server会依据配置文件初始化一系列的參数和对象。所以一切都要从配置文件開始说起。


    <span style="font-family:KaiTi_GB2312;">  <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
    
      <!-- Standard Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping></span>
    





      从Struts1的结构体系上来看,仅仅要符合配置要求的client的请求都会被ActionServlet这个类进行接受和处理。在这里配置的是*.do,全部以.do 结尾的request请求都会被转到ActionServlet中进行处理。Tomcat启动时,对于创建的ActionServlet,还有其它的一些重要的參数。

      首先,是config參数,这里配置的是/WEB-INF/struts-config.xml。系统默认的Struts配置文件名。这里我们能够删除。




      能够知道,在ActionServlet中已经写好了默认的文件配置信息名称,也就是标准名称,所以我们再web.xml中不配置Struts的配置文件项也是能够的。假设这样必须保证Struts配置文件的名称和ActionServelt中的一样。

      其次,配置中的debug和detail。是关于日志记录方面的配置。无关紧要,值越小,表示日志记录粒度越大。相对来说内容就越不具体。
      最后是 <load-on-startup>的配置。这个是用来确定Servlet在server启动的时候server先载入哪个Servlet,值越小。表示server越先载入。

      当Tomcat启动的时候,会读取web.xml文件。创建一个单实例的ActionSerlvet。这个ActionServlet去读取Struts-config.xml文件到内存中,以map形式进行保存,然后会在之后的Services方法中用到。为之后最基本的process方法做好必要的准备。顺带着提一下,Struts对ActionServlet的封装,使得自身成为了一个具有侵入性的框架。假设不继承Action就不会实现相应的功能。

    还有一方面,Tomcat实例化ActionServlet採用的单实例,也会存在线程安全问题,这是后话,我们之后会谈到。
      这篇博客主要是了解Struts框架最核心的ActionServelt的在web.xml中的配置,至于载入好配置文件之后,怎样进一步的实现处理和分发请求,后面的文章继续!




  • 相关阅读:
    rails时间问题
    stringify_keys 和symbolize_keys
    thritf
    Nginx负载均衡反向代理
    CentOS 7 yum 安装 Nginx
    CentOS 7安装与配置Tomcat8
    CentOS 7安装与配置JDK8
    系统数据字典模块设计
    mysql视图
    阿里云maven中央仓库
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5266813.html
Copyright © 2020-2023  润新知