在Tomcat(二).web容器Tomcat知识点一文中,我们直接将项目war包放在tomcat/webapps目录下,访问:http://localhost:8080/helloServlet/login.html,需要加上helloServlet,那么如何不需要加呢?
方法一
将helloServlet.war上传到tomcat/webapps目录下并改名为ROOT.war即可,在启动tomcat后,会自动将其解压,在webapps目录下会多了一个ROOT文件夹
方法二
第一步:在tomcat目录下新建web目录,然后将pd_hk.war解压后上传到该目录下
第二步:修改server.xml文件
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/home/appdev/pd_hk_8001/web/pd_hk" debug="0" />
......
注: /home/appdev/pd_hk_8001/web 就是 上传web应用后的位置,pd_hk是项目名
第三步:启动,访问:http://localhost:8080/login.html
注意1:如果将 appBase="web",会出现将该项目启动二次的现象,如同注意2
注意2:如果没有解压,直接pd_hk.war放在webapps目录下,且配置文件为:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/home/appdev/pd_hk_8001/webapps/pd_hk.war" debug="0" />
......
也会出现将该项目启动二次的现象,会启动两个该项目:
通过定时任务可以看到有两个对象在执行定时任务:
其实是两个项目(ROOT、pd_hk)同时在跑定时任务,并不是该项目启动二次,所有的项目都在webapps目录里面,root是其中的一个项目,http://localhost:8080/默认访问root项目,而如果要访问pd_hk项目需要如此访问http://localhost:8080/pd_hk/,二者都有定时任务的话,那么都会执行,所有才会在日志了看到打印了两个不同的对象。
方法三(推荐)
第一步:在tomcat目录下新建web目录
直接pd_hk.war放在webapps目录下,且配置文件为:
注意:appBase="web"
<Host name="localhost" appBase="web" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/home/appdev/pd_hk_8001/webapps/pd_hk.war" debug="0" />
......
tomcat启动后会自动在tomcat/web下创建pd_hk.war解压包
而webapps目录下没有解压包