tomcat加载应用程序配置文件顺序

    对于三大框架,例如ssh或ssm,在tomcat容器启动时配置文件加载顺序是?

    针对这样的疑问,我大概知道每个项目的加载都是从web.xml开始的,所以我们以下面的配置文件为例,说明加载过程,我的项目web.xml配置文件如下:





	
		log4jConfigLocation
		/WEB-INF/classes/log4j.properties
	
	
		org.springframework.web.util.Log4jConfigListener
	

	
	
	
		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		encodingFilter
		/*
	

		 
	
	
	
		casServerLogoutUrl
		https://cass.cdv.com:8443/cas/logout
	
	
		serverName
		http://192.166.0.117:8080
	
	
		casServerLoginUrl
		https://cass.cdv.com:8443/cas/login
	
	
		org.jasig.cas.client.session.SingleSignOutHttpSessionListener
	

	
	
		CAS Single Sign Out Filter
		
		org.jasig.cas.client.session.SingleSignOutFilter
	
	
		CAS Single Sign Out Filter
		
		/*
	
	
	
	
		CAS Filter
		org.jasig.cas.client.authentication.AuthenticationFilter
		
		
			casServerLoginUrl
			
			        https://cass.cdv.com:8443/cas/login 

		
		
			serverName
			
			http://192.166.0.84:8080
		
	

	
	
		CAS Filter
		
		/* 
	
	

	
	
		CAS Validation Filter
		
			org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
		
		
			casServerUrlPrefix
			 https://cass.cdv.com:8443/cas 

		
		
			serverName
			
			http://192.166.0.117:8080
		
	
	
	
		CAS Validation Filter
		
		 /*
	
	
	
		com.cdv.vms.web.listener.SessionListener
	


	

	
	
		login security filter
		SecurityFilter
		SecurityFilter
		com.cdv.ms.web.filter.SecurityFilter
		
		
			noFilter
			main.jsp
		
		
			noFilter1
			/publish/showV/
		
	
	
	
		SecurityFilter
		/*
	
	


	
		springMVC
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:springMVC.xml,classpath:applicationContext.xml
		
		1
	
	
		springMVC
		/
	
	
	
		TokenServlet
		com.cdv.upload.servlet.TokenServlet
		0
	
	
		TokenServlet
		/tk
	
	
		StreamServlet
		com.cdv.upload.servlet.StreamServlet
		0
	
	
		StreamServlet
		/upload
	
	
		FormDataServlet
		com.cdv.upload.servlet.FormDataServlet
		0
	
	
		FormDataServlet
		/fd
	
	
	
	
		404
		/common/404.jsp
	
	
		505
		/common/505.jsp
	

	
	
		main.jsp
	


tomcat容器加载


一、加载顺序

   1、对于不同的标签:启动一个web项目的时候,web容器去读取它的配置文件web.xml,读取web.xml文件的时候那应该先读取哪些节点呢?和他们配置的位置没有关系。读取节点的顺序是:listener>filter>servlet。上述配置中还存在一个标签,这个标签用来提供应用程序上下文信息,可以写在任意位置上,因此加载web.xml标签的顺序为:context-param>listener>filter>servlet

   2、对于同类标签

    filter:在配置filter的时候,web.xml中可以定义多个filter,与filter相关的节点有filter-name、filter-class,filter-mapping必须出现在filter-name标签后,启动容器初始化每个filter的时候,初始化顺序是依照filter-mapping配置节点出现的顺序来调用的doFilter()方法的

    servlet:也filter一样。但当我们设置load-on-startup元素的时候,这个元素的值必须是一个整数。

    如果为负数或者不存在的时候,容器会在该servlet被调用的时候加载这个servlet。

    如果为正整数或0,容器在加载的时候会保证较小的值先被加载。

    如果值相等,容器会自动选择先加载谁。

    由此可知,上述的web.xml系统会如何加载各个项的了。



二、各个标签的说明

web.xml常用元素

    

        :定义了web应用的名字。

        :声明了web应用描述信息。

        :声明应用范围内初始化参数。

        :过滤元素,将一个名字与一个实现javax.servlet.Filter接口的类相关联。

        :一旦命名了过滤器,就要利用filter-mapping元素把它与一个或多个servlet或jsp页面关联。

        :servlet API版本2.3增加了事件监听支持,事件监听程序在建立、修改和删除回话或servlet环境时得到通知。

        :在servlet或jsp页面执行初始化参数或定制URL时,必须首先命名servlet或jsp页面。

        :服务器一般为servlet提供一个缺省的url。在更改缺省url时,使用servlet-mapping元素。

        :设置回话超时时间,默认单位分钟。

        :发送到客户端为什么类型。

        :指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。

        :返回特定http状态码时,或者特定类型异常抛出时,能够制定要显示的页面。

        :对标记库描述文件指定别名。


三、常用元素相关配置

    1、上下文参数配置

   
    ContextParameter   
    test   
    It is a test parameter.   
   

    2、过滤器配置


		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		encodingFilter
		/*
	

    3、监听器配置

   
      listener.SessionListener   
   

    4、servlet配置

	
		springMVC
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:springMVC.xml,classpath:applicationContext.xml
		
		1
	
	
		springMVC
		/
	
    5、回话超时设置

    
      120   
    

    6、MIME类型配置

   
      htm   
      text/html   
     

    7、指定欢迎页配置

    
      index.jsp   
      index.html   
      index.htm   
      

    8、配置错误页面配置



		404
		/common/404.jsp
	
	
		505
		/common/505.jsp
	










你可能感兴趣的:(【J2EE项目】)