每日一问-Tomcat中四个XML配置文件的作用
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>