JavaWeb学习-Tomcat系列-6-端口占用问题和默认应用和默认主页

本篇来学习Tomcat常见两个配置知识,第一个是端口占用的场景以及如何解决端口占用。第二个是配置默认主页,默认应用。端口占用,有两个解决办法,第一个是修改成别的端口启动tomcat,第二个是找到占用端口的后台进程,杀死这个进程,自然就解决了端口占用。设置默认主页和默认应用,就是输入一个地址,我不输入URI后面的什么html文件,也能够自动打开这个html文件。

1.端口占用问题

我在Eclipse项目中已经启动了tomcat, 为了重现端口占用问题,我在cmd窗口再次启动tomcat,看看发生什么。在启动过程发现出错了,一闪而过,窗口就关闭了, 只好去tomcat目录下看日志文件了。打开catalina.2019-05-05.log日志文件,找到JVM_Bind位置。

05-May-2019 16:30:49.902 严重 [main] org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8005]: 
 java.net.BindException: Address already in use: JVM_Bind
	at java.net.DualStackPlainSocketImpl.bind0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
	at java.net.ServerSocket.bind(ServerSocket.java:375)
	at java.net.ServerSocket.<init>(ServerSocket.java:237)
	at org.apache.catalina.core.StandardServer.await(StandardServer.java:440)
	at org.apache.catalina.startup.Catalina.await(Catalina.java:776)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:722)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)

前面文章我提过,JVM_Bind就行Java虚拟机已经绑定的意思。以后看到这个错误,就要想起端口被占用。端口默认是8080.也就是这个8080端口被占用,解决这个问题有两个办法

1) 修改tomcat下conf下server.xml中的端口改成8080之外的,这种方法还不一定好用。

2) 找出占用端口的程序,后台把进程杀掉就好了。

这里详细介绍下第二个方法。

在cmd里输入命令: netstat -ano, 这里我截取一部分,主要看8080这个对应进程ID。

C:\Users\anthony>netstat -ano

活动连接

  协议  本地地址          外部地址        状态           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1164
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:2179           0.0.0.0:0              LISTENING       4960
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1508
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       15044
  TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING       7816
  TCP    0.0.0.0:8009           0.0.0.0:0              LISTENING       7968
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       7968
  TCP    0.0.0.0:8180           0.0.0.0:0              LISTENING       4512
  TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING       968

在上面,找到8080占用进程的PID是7968, 然后我们去任务管理器中找到这个PID,右键选择关闭进程。

上面我这个图是win10上截图,找到了7968这个PID,对应程序是JAVA程序,我们右键,选择结束任务,这样cmd再次启动就可以成功启动tomcat服务。

2.设置默认主页和默认应用

默认端口

这里说的默认端口是指80,之前我们是这样输入网址去访问的http://localhost:8080/MyApp01/123.html

如果通过配置,这样也能访问http://localhost/MyApp01/123.html

这个就是这里说的默认端口配置,很简单浏览器访问默认端口是80,所以,我们需要去conf/server.xml文件把tomcat端口8080改成80,前提你系统80端口没有被占用。

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

重启tomcat服务器,浏览器输入http://localhost/MyApp01/123.html测试下。

默认主页

什么是默认主页呢,之前我们是http://localhost/MyApp01/123.html 才能访问,

如果通过这样http://localhost/MyApp01/也能访问123.html的效果,这个就是默认主页。

我们这样去设置,在Tomcat中的conf下找到web.xml文,编辑打开

在web.xml文件最后几行内容,或者搜索 welcome找到

    <welcome-file-list>
        <welcome-file>123.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

我这里改成123.html

welcome-file是这样的,这里默认设置了3个,如果找不到123.html就找第二个index.htm,如果第二个找不到,就找第三个,所以,这里可以设置3个默认的主页。

 

默认应用

这里来说,默认应用,我们的应用名称是MyApp01, 如果tomcat访问不输入这个名称,默认访问的是tomcat的默认项目。

这个页面就是访问默认应用,就是下面这个ROOT项目。

所以,我们想把这个效果改成默认使用我们自己应用MyApp01,我们可以在Tomcat的webapps目录把MyApp01重名为ROOT,重启Tomcat服务就可以。

这种方式是最简单的修改办法。当然这种方式改应用名称不太合理,不方便后面维护,ROOT项目还是没有一个具体的APP项目好用,还有一种方式就是修改虚拟目录下的MyAPP01.xml改成ROOT.xml就行,关于虚拟目录配置,这里不演示,自己去学习。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值