首页 > 编程知识 正文

tomcat是怎么部署web项目,怎么在tomcat上部署web项目

时间:2023-05-06 05:46:14 阅读:261185 作者:3740

Tomcat部署Web项目的几种方式:
web应用部署,相当于把web应用交给服务器管理,供外界访问.

一、将war包丢进webapps(不推荐)
最简单的方式,就是把web项目直接放到tomcat的webapps目录下,tomcat会自动管理这个目录下的所有应用;
估计是 tomcat 的 conf 下 server.xml文件中配置了这样一段,默认主机就是加载这个webapps目录

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

可以直接放web应用文件,也可以放web应用的war包,tomcat启动时,会自动解压war包;
注意:这种方式部署的web应用,映射的虚拟目录就是文件名称:比如放置了一个名为 myWeb 的web应用,那么访问地址就是
http:localhost:8080myWeb            
#这种方式不被推荐,项目不好管理,而且需要链接加上项目名才能正常访问。
#无需修改任何配置文件即可完成部署的原因是:conf中server.xml中host属性Appbase修改为webapps,unpackwar属性为true,autoDeploy="true"即可自动解压部署。

二、修改server.xml文件,配置虚拟主机,也叫【外链式】  :
#修改配置文件无需我们打war,这样方便开发 
在server.xml文件中host节点下添加    
<Context docBase="" path=""/> 

#docBase : 部署项目的根目录,绝对路径,真实项目路径
#path    : 虚拟路径,如果什么都不写   浏览器中可以直接访问  : localhost:8080
                    #如果path="xx"   浏览器中应该这样访问  : localhost:8080/xx   

在tomcat 的 conf 下 server.xml文件中配置:
找到上面图片的<host>标签,这个代表主机,一个站点名称,http:\localhost 就是这个标签的name属性值,
在这个标签下添加一个<context>节点:
<Context path="/xxxx" reloadable="true" docBase="D:myapp" workDir="D:myappwork"/>
其中path是虚拟路径(访问这个web资源时输入的地址:http:\localhost:8080xxxx),docBase是web应用程序的物理路径,workDir是这个应用的工作目录,存放运行是生成的于这个应用相关的文件;
reloadable:如果希望Catalina监视/WEB-INF/classes/和/WEB-INF/lib下面的类是否发生变化,在发生变化的时候自动重载web application,设为true。这个特征在开发阶段很有用,但也大大增加了服务器的开销。因此,在发布以后,不推荐使用。但是,你可以使用Manager应用在必要的时候触发应用的重载。
这种方式的缺点是添加之后,web应用不能自动加载,必须重新启动服务器才能生效,这在生产环境就不是很实用

三、添加xml方式,配置虚拟主机(推荐使用)
在usr/local/tomcat/conf/Catalina/localhost下新建文件test.xml
添加如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/local/tomcat/conf/Catalina/localhost/test.xml" reloadable="false" />
不需要写path,虚拟目录就是文件名test.xml,path默认为/test.xml
#docBase还是指向WEB工程的绝对路径。
#不需要重启tomcat,浏览器输入:localhost:8080/test
 
在tomcat 的confCatalinalocalhost 目录下:
新建任何一个xml文件,在文件中配置context元素:
<Context path="/xxxx" reloadable="true" docBase="D:myapp" workDir="D:myappwork"/>
这种方式配置的web应用会被自动加载,不需要重启服务器,推荐使用;
且context元素中的path不需要指定,因为映射路径名就是xml文件的名称,比如MyWeb.xml,那么就相当于
path配置为/MyWeb。如果需要指定多级目录,比如想这样访问http://localhost:8080/a/b....,那么xml的文件名就这样配置:
a#b.xml,那路径就会映射为a/b。

注意点:
①将对应位置改为ROOT即可实现目录缺省
1.webapps/ROOT(将你的web工程名称改为ROOT即可实现缺省);
2.server.xml中对应Context标签的path属性设置为"/";
3.添加ROOT.xml即可实现WEB应用缺省。
#缺省网页bai就是默认网页的意思,就是打du开浏览器时显示zhi的第一个页面。

部署方式的优先级别:
server.xml>Catalina/localhost/ROOT.xml>webapps/ROOT
即如果同时配置以上3种方式,优先生效的为server.xml,其次为ROOT.xml,webapps优先级别最低。
 
#四、用eclipse集成的tomcat发布,或者将项目文件中的webroot中文件复制粘贴,放置在tomcat中webapps中新建的文件(将来路径名)里使用eclipse时项目文件没有webroot只有webcontent的需要将webcontent在eclipse中修改设置为webroot,或者将webcontent中的除META-INF以及build文件中classes文件粘贴于新建文件,即可发布。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。