vlambda博客
学习文章列表

每日一问-Tomcat中四个XML配置文件的作用

XML:指可扩展标记语言,被设计用来传输和存储数据


问题一:Tomcat中四个XML配置文件的作用


1)、哪四个XML配置文件呢?

分别是content.xml、server.xml、web.xml、tomcat-users.xml

2)、他们各自具有什么样的作用呢?

①tomcat-users.xml:

关于用户登录、管理员账号密码的配置都在这个文件中。默认情况下用户登录的账号密码是注释掉的,只有去掉注释才可以登录成功,也就是大家熟知的"tomcat管理台弱口令部署war包getshell"

<role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="tomcat" roles="tomcat"/><user username="both" password="tomcat" roles="tomcat,role1"/><user username="role1" password="tomcat" roles="role1"/>

②server.xml:

server顾名思义就是对服务器进行配置的地方,包括服务器的端口、虚拟主机、调试模式开启关闭、项目目录路径等。

<Context path="/project" docBase="E:\work\abc\WebRoot" debug="0" reloadable="true" crossContext="true" />

③content.xml:
这其中的配置文件是tomcat的公用环境配置文件,tomcat会定期扫描这个文件,判断是否发生了变化,如果文件发生了变化(也就是被编辑过),会重新加载这文件而不需要重启服务器。如果在server.xml中的配置发生了变化则需要重启服务器。

content.xml的作用范围有三个,分别是server级别、Host级别、web app级别。

server级别的配置是在:$CATALINA_BASE中,会对webapps目录下的所有项目有效

$CATALINA_BASE/conf/context.xml

Host级别的配置是在$CATALINA_BASE的虚拟主机中,会对虚拟主机下的webapps目录有效

$CATALINA_BASE/conf/Catalina/${hostName}

web app级别的配置是在下述路径中添加${webAppName}.xml进行配置

在 $CATALINA_BASE/conf/Catalina/${hostName}

④web.xml:

是web应用程序的配置文件,例如IIS中的默认文档页面的配置就是在这个web.xml中实现的,下面举实例说明:

为servlet命名:

<servlet>  <servlet-name>servlet1</servlet-name>  <servlet-class>org.whatisjava.TestServlet</servlet-class> </servlet> 

为servlet指定URL类型:

<servlet-mapping>  <servlet-name>servlet1</servlet-name>  <url-pattern>*.do</url-pattern> </servlet-mapping>

指定页面错误页面:

<error-page>  <error-code>404</error-code>  <location>/error404.jsp</location> </error-page> 

设置一些过滤器,过滤网站的资源等:

<filter>  <filter-name>XXXCharaSetFilter</filter-name>  <filter-class>net.test.CharSetFilter</filter-class> </filter> <filter-mapping>  <filter-name>XXXCharaSetFilter</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>