Web | 服务器 | Tomcat | web项目布署方式总结

1.Context标签指定

1.1 直接在 servler.xml 中添加Context标签

了解过Tomcat体系结构的应该知道,Context就代表一个项目应用,自然他配置的就是某个web项目了。

Context标签说明:

属性说明
path虚拟路径,可以理解为对项目目录的一个映射,供url定位项目用,当然也可以指定为空
docBase项目的存储目录地址,一般是绝对路径
debug0~9,为设定debug的等级,0提供最少的信息,9提供最多的信息,一般为0
reloadabletrue:当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务
crosscontexttrue:表示配置的不同context共享一个session

具体配置如下:直接在配置文件servler.xml 的<Host>标签中添加Context标签,指定虚拟路径和项目路径。

我们可以通过查看Tomcat安装文件夹下的conf文件夹中的server.xml文件来了解Tomcat各组件之间的层次关系。由于server.xml注释太多,特简化如下:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
	<Service name="Catalina">
		<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
		redirectPort="8443" URIEncoding="UTF-8"/>
		<Engine name="Catalina" defaultHost="localhost">
			<!--指定项目运行主机别名,确定主机位置的,不配置默认localhost-->
			<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
			<!--指定一个项目应用的目录位置,可以代替默认的ROOT目录中的项目,
			当不写具体资源路径,直接http://localhost:8080,默认访问这个-->
				<Context path="" docBase="WORKDIR" reloadable="true"/>
			</Host>
		</Engine>
	</Service>
</Server>

一般不这么配置,其缺点是:

  1. 配置文件加载后,就不加载了,tomcat在不关闭的情况下,没法部署。
  2. server.xml文件是tomcat的配置文件,不宜多次修改。

注意:
这种方法相当于指定了端口下的默认项目,相当于取代了原来的Root文件夹。

1.2 通过独立的Context文件部署

独立的Context文件: 就是只有一个Context标签的文件。

通过独立的Context文件描述清楚项目的访问路径和地址,tomcat在启动的时候会解析这个Context文件,创建一个Context对象。

Context文件的存储路径:
Context文件的存储路径默认路径(通过server文件配置)为:tomcat/conf/<Engine>标签的 name属性值/<Host> 标签的name属性值 ,如上面的就是tomcat / conf / Catalina / localhost文件夹中,这也是默认的文件路径。你也可以自定义路径,通过Host标签的xmlBase属性指定,server配置文件中默认是没有给Host标签配置xmlBase属性的,自己加上即可。如下图

在这里插入图片描述Context独立文件内容如下:
在这里插入图片描述
将文件放入指定目录中即可如下,Context标签属性前面已经说了:
在这里插入图片描述
注意:
1.这个时候,path可以不指定,tomcat会以文件名为虚拟目录,如果指定则必须和文件名一致。

优点:
1.项目可以存储在服务器的任意位置,不一定要在tomcat目录下(用Context标签的好处)。
2.对比前一个,无需频繁改变server.xml文件,和tomcat的文件解耦。
3.配置灵活,对服务器的侵入小,在不重启Tomcat的情况下更新部署。

1.3 其它方法

一般不用

  1. Web目录的部署方式同样也是支持Context配置文件来启动项目的。只不过比较麻烦,而且没有那么灵活。需要将方式一的配置文件放置在Web应用的META-INF目录下,文件名为context.xml(不要随意起,要用这个)。那么Context配置的name/path/webappVersion/docBase这4个属性不可以自己配置定义,这些均由Web目录的路径以及名称确定。
  2. 项目启动的时候,如果Host标签的deployXML属性值为true(那么就表示通过Context描述文件部署),并且存在META-INF/context.xml文件,而且context.xml的Context标签的copyXML属性为true,表示复制这个文件。Tomcat会自动将这个描述文件复制到:tomcat/conf/<Engine name属性名称>/<Host name属性名称>下,文件名称和Web应用目录名一致。
  3. 那么什么情况下不会通过Context配置文件部署呢?如果Host的deployXML属性值为false则不会。

2.Web目录部署

直接将要部署的项目放在指定的目录中,这种部署方式是tomcat中最常见的,默认是webapps目录中。当你要把WEB应用程序发布到webapps以外的目录下的时候,可以修改Host标签属性appBase(webapps)的值, 要指定绝对路径,这个时候虚拟目录就是项目文件夹的名字

2.1 直接放置编译好的文件夹

我们只需要将Web应用的所有资源文件(js,css,html,class文件等)复制到指定目录即可。

2.2 部署war包

部署方法:
将war包放入指定目录,tomcat会将解压成文件夹(也可以关掉此功能)和上一种方式没什么区别。

打war包方法:

  1. 集成了maven的开发平台打成war包(开发中最常用)
  2. cmd中执行maven命令:进入打包的文件夹执行(注意:执行这个命令一定要进入pom.xml文件所在的文件夹中):mvn clean package
  3. 压成zip然后改后缀或者在命令行窗口用cmd命令:首先进入你要打包的文件夹,执行 jar -cvf <文件夹的名字或你自己起个名字>.war *.*
    在这里插入图片描述
    在这里插入图片描述

2.3 部署jar包

部署方式:
麻烦不讨好,不建议
打jar包方式:

  1. cmd命令:到要打包的文件夹下执行jar cvf 文件取名.jar *.*
  2. 借助maven和开发工具打包。

2.4 war包jar包区别:

war包和jar包的区别
war包和jar包的区别2

3.0 tomcat处理请求的过程

  1. 项目启动时,tomcat会加载配置文件,其中就包括全局的web.xml和项目自身的web.xml。
  2. 不管你访问什么资源,tomcat将你的访问地址与web.xml文件中的Servlet映射地址匹配,按照先后匹配顺序,匹配到哪个映射地址就访问哪个映射地址对应的Servlet。
  3. 总的来说,不管你访问的什么资源都需要先访问Servlet,由Servlet来决定具体返回什么资源。
  4. 即使访问到404,也是Servlet判断的结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值