前言:很多时候Tomcat部署好Web项目之后访问项目的时候都需要加上端口号和项目名,如:http://localhost:8080/项目名,下面我会介绍可以不用输端口号和项目名便可以直接进行访问的方法,其实就是修改Tomcat下conf目录中的server.xml配置文件。

通常Tomcat部署的Web项目请求URL为:http://ip:port/project/index.jsp

  • iptomcat部署服务器地址
  • porttomcat绑定端口号
  • project:项目名称
  • index.jsp:具体访问页面

1、省略项目名称的配置

找到Tomcat安装目录下conf目录中server.xml,在Host标签中添加<Context docBase="项目名称" path="/"/>

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" 
				xmlValidation="false" xmlNamespaceAware="false">
		<Context docBase="项目名" path="/"/>    
</Host>

如下图:

java怎么办url根据端口号分隔 url中的端口号可以省略吗_Tomcat启动一闪而过消失

这样访问URL变成:http://ip:port/index.jsp

只需要输入http://localhost:8080/ ,就可以直接访问项目了。


2、省略端口号的配置

  • TCP/IP协议默认80端口访问,大部分网站URL不含端口号是因为都是使用的80端口。
  • Tomcat默认的访问端口为8080,所以修改Tomcat端口号为80端口即可。
  • Tomcat目录下conf文件中的server.xml,在Connector标签中port属性修改为80

java怎么办url根据端口号分隔 url中的端口号可以省略吗_ROOT和webapps目录_02

这样访问URL变成:http://ip/project/index.jsp

只需要输入:http://localhost/项目名称,就可以直接访问项目了。


3、测试URL省略端口号和项目名称访问项目

综上所述,如果是既想省略端口号又想省略项目名称,只需要把步骤1和步骤2同时修改就可以了。

例如直接输入:http://localhost就可以访问项目了

java怎么办url根据端口号分隔 url中的端口号可以省略吗_Tomcat启动一闪而过消失_03

补充Tomcat使用常识:

有没有遇到过Tomcat下bin目录中运行Tomcat7.exe或者老版的startup.bat文件,但是Tomcat命令行启动一闪而过就消失的情况?

java怎么办url根据端口号分隔 url中的端口号可以省略吗_Tomcat启动一闪而过消失_04

java怎么办url根据端口号分隔 url中的端口号可以省略吗_ROOT和webapps目录_05


解决方案:我相信你的环境变量一定没有配错,真正的原因是你已经运行了一个Tomcat应用容器,可能是你的IDEA中运行的Tomcat没有关闭,只要关掉Tomcat的connect连接就可以了。


4、Tomcat中的webapps文件夹和ROOT目录的区别

4.1、项目在webapps目录

将项目的war包放在webapps目录下,运行tomcat会自动解压缩并部署为应用。

java怎么办url根据端口号分隔 url中的端口号可以省略吗_ROOT和webapps目录_06

 访问路径为 http://localhost:8088/ssm ,8088是tomcat端口号,在server.xml,修改 HTTP/1.1 的端口号,ssm为项目打成war包的名称

4.2、项目在 ROOT 目录(可以去除项目名)

手动将war包解压到ROOT目录或者直接删除ROOT目录并修改war包名为ROOT.war让Tomcat自动解压

java怎么办url根据端口号分隔 url中的端口号可以省略吗_端口号_07


访问路径为 http://localhost:8088/,相比webapps目录,访问路径中去除了项目名

总结:

  • ROOT相比webapps目录,Tomcat服务器优先去webapps目录下找项目,如果有则显示,没有则去ROOT找,ROOT可以去除访问路径中的项目名。
  • 如果请求路径当前不想要目录名,那么可以通过创建webapps下面创建ROOT目录,然后手动将war包解压到ROOT目录,然后删除原有的war包,这样tomcat启动的时候就不会自动解压war包,同时也不会生成对应war包名称的文件。