当前位置: 首页 > 工具软件 > xmlweb > 使用案例 >

【Servlet】Tomcat公共 / 项目独立的 web.xml / server.xml 文件讲解

谢英光
2023-12-01

课程介绍

每个web 项目下都具备web.xml 文件。通过前面的学习,我们对web.xml 文件有了一定了解,但是还不够,本节课就web.xml 文件进行总结。同时对Tomcat 下的server.xml 进行介绍。

Web.xml 文件使用总结

作用
存储项目相关的配置信息,保护Servlet(不直接把类名暴露给用户)。解耦一些数据对程序的依赖。

使用位置:
(1)每个Web 项目中
(2)Tomcat 服务器中(在服务器目录conf 目录中)

区别:
Web 项目下的web.xml 文件为局部配置,针对本项目的位置。
Tomcat 下的web.xml 文件为全局配置,配置公共信息。

  • 对于同一个xml元素,如果以上两个配置同时存在,优先使用Web项目下的配置。

web.xml的内容(核心组件):
(1)全局上下文配置(全局配置参数)content-param
(2)Servlet 配置ServletContext
(3)过滤器配置 filter
(4)监听器配置 listener

以上四个配置位置没有顺序,但加载有顺序:
Web 容器会按ServletContext -> context-param -> listener ->filter -> servlet 这个顺序加载组件,这些元素可配置在web.xml文件中的任意位置。

加载时机:
无论是项目内的web.xml还是tomcat里的web.xml,都是在服务器启动时,加载web.xml


server.xml 文件

  • 可以在里面修改端口号

问题:
浏览器发起请求后,服务器根据请求在webapps 目下调用对应的Servlet 进行请求处理。那么为什么是webapps 目录难道不能是其他的目录吗?

解决:
了解server.xml 文件的配置信息

Server.xml 文件核心组件:

<Server>
	<Service>
		<Connector /> <!-- 配置服务器使用的端口号、服务器使用的协议、发送请求的连接时间限制、重定向端口号(如果8080端口有问题,会重定向到8443) -->
		<Connector /> <!-- 8009端口号使用的AJP协议主要用于服务器集群,是好几个服务器联动进行操作 -->
			<Engine> <!-- 一个Service下面只能有一个Engine,里面的appbase配置了默认的项目目录:webapps。Tomcat启动后,service里面的数据监听8080端口(底层代码实现),用户浏览器请求被tomcat服务器拿到,然后根据URI找到项目去匹配。 -->
				<Host>
					<Context />
				</Host>
			</Engine>
	</Service>
</Server>

热部署:

冷部署:是每次对项目进行了内容修改之后,都需要重启服务器才能看到效果。

热部署:可以设置部署目录,不需要把项目放在webapps下。

<Context path ="/Pet" reloadable ="true" docBase ="F:/PetWeb" />

path写的是项目的虚拟名称
reloadable ="true"表示项目被修改之后自动加载。
docBase配置的路径要精确到webroot路径。

如果项目删了,热部署的路径没删,启动服务器的过程会报错,Tomcat启动失败。

 类似资料: