Tomcat文件夹下conf文件夹中的context.xml文件存在的目的是什么

问题:

Tomcat文件夹下conf文件夹中的context.xml文件存在的目的是什么?

Tomcat文件夹下conf文件夹中的context.xml文件存在的目的是什么_第1张图片


回答:

首先,你要明白一点tomcat的工作原理是什么?也是一个Java程序是一个网络服务

那么,webapp是如何嵌入的?反射

webapp是如何加载的?webapp的入口?是servlet和过滤器以及监听器这是一个webapp的入口

一个webapp又被称为什么?在tomcat中被抽象成什么对象?是ServletContext

假如,你的tomcat下部署了两个webapp最终你的tomcat中是不是管理了两个ServletContext对象每一个对象代表一个webapp

现在的问题是,为什么建立2个,而不是3个tomcat启动之后为什么会建立这样两个对象Tomcat文件夹的conf文件夹中的server.xml里面配置了context标签tomcat启动的时候会读取这个文件发现配置了2个context那么就应该建立两个ServletContext对象

 

为什么不同的url会跑到不同的ServeltContext因为pathcontext标签下是不是指定了path这样,在tomcat内部就是维护了一个map每个context对应一个path这样,tomcat接受到请求,读取url就会把这个请求交给指定的ServletContext但是,ServletContext粒度很大一个ServeltContext下管理了很多个serlet还需要进一步路由这个路由规则由谁指定?是不是每个ServletContext内部还会维护一个路由这个路由就是每个项目的WEB-INF文件夹下的web.xml也就是说    项目里的web.xml  是来管理自己项目中的东西的某个具体项目的WEB-INF文件夹下的web.xml的范围是这个项目ServletVontext的内部级别

 

 

WEB-INF文件夹下的web.xml是不是配置了不同的sevlet的mapping,全部由这个文件来指定。那么,tomcat为什么知道是这个文件?这些都需要tomcat这个java程序来读取来分配来指定规则因为Tomcat文件夹下的conf文件夹中的context.xml中指定了这个web.xml的路径如图:(context.xml文件中代码)

 






    
    
    WEB-INF/web.xml
    WEB-INF/tomcat-web.xml
    ${catalina.base}/conf/web.xml

    
    


 

 

假如你把红线那一行改了你改成web2.xml那么,你的webapp中也要相应的改成web2.xml

你可能感兴趣的:(Tomcat文件夹下conf文件夹中的context.xml文件存在的目的是什么)