【转】URL访问地址和Tomcat项目部署中不得不说的小秘密

今天来简单讲讲tomcat项目部署和url地址访问栏的关系,顺便和大家分享下,叙述不当之处,还请大家多多指导!

众所周知,Tomcat项目发布的默认访问地址格式如下:http://localhost:8080/MyDemo/index.jsp

由于web.xml配置了 <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>欢迎页面,通常我们只需要访问:http://localhost:8080/MyDemo

然而该地址实在是low爆了,为众人所不喜,于是我决定带大家简单优化下:

先简单说说tomcat发布项目:(部分“猿”友请跳过这段)

1、WAR打包

首先通过MyEclipse/Eclipse进行打包为.war文件,具体操作为:选中项目右击---导出--选择JavaEE/WAR file--选择项目和导出位置--finish,至此打包完成。

2、项目部署

打开并编辑D:\JavaTools\Tomcat\apache-tomcat-7.0.73\server.xml文件,在<host>...</host>标签内添加如下:

<Context path="/MyDemo" docBase="D:\JavaTools\Tomcat\apache-tomcat-7.0.73\webapps\MyDemo.war" debug="0"  privileged="true" reloadable="true"/>

注意:path是指明项目访问时工程名称,docBase是项目存放地址,其他属性不建议修改。

此处我将MyDemo.war放在webapps下(大家可以根据个人喜好放任意位置),完成后保存。

当前状态webapps文件夹下有默认文件docs  examples  host-manager manager ROOT ,还有项目文件 MyDemo.war,而work文件夹下为空(此时webapps和work文件夹下如果有其他,均可删除)

注意事项:

如果不配置<Context>标签,由于没有docBase指明项目位置,则项目必须放在host配置中对应的appBase地址下(如webapps),Tomcat启动时会加载webapps下所有项目,且没有path指引时,默认指引是项目名称。如果配置了就一定要配正确,tomcat找不到项目会报错。webapps下的项目访问一定要有项目名称,否则会访问Tomcat主页(因为Tomacat主页是ROOT文件夹下的)

3、项目测试

启动Tomcat:双击apache-tomcat-7.0.73\bin\startup.bat

当前状态webapps文件夹下多了一个解压后的MyDemo文件夹(原项目文件),work文件夹下有初始化生成的\work\Catalina\localhost文件夹,里面有 _   docs  example  host-manager  manager  MyDemo(空文件夹,还未编译) 

输入url访问项目:http://localhost:8080/MyDemo

当前状态work中的MyDemo(非空文件夹,部分编译)

4、关于登陆tomcat首页进行项目管理

配置tomcat-users.xml文件新建管理账户:

打开Tomcat安装目录下面的conf文件夹下的tomcat-users.xml如右    D:\JavaTools\Tomcat\apache-tomcat-7.0.73\conf\tomcat-users.xml

然后用记事本打开编辑,添加自定义管理用户

<user username="admin" password="admin" roles=" admin-gui , manager-gui "/>

然后保存,

登陆tomcat首页--点击右上方的Manager App按钮,输入帐号密码(如上tomcat-users.xml配置),即可进入管理页面。

/**********************************************跳过上面铺垫,我们开始主题部分*******************************************/

1、去除:8080端口号

编辑server.xml文件,找到

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

将port="8080"改为80端口,只有默认的80端口可以省略(浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80”)

<部分网友的80端口可能被其他程序占用,解决如下>

ctrl+alt+enter以超级管理员运行cmd,输入

 netstat  -anb                          查找到80被占用的程序名称和服务

然后输入 

taskkill /f   程序名.exe           关闭后台程序

输入

net  stop  服务名称               关闭服务

2、将"localhost"改为类似"www.zyp168.com"             

(注意此处即便改了实际ip还是127.0.0.1,实际域名是要money买的敲打)

(1)编辑 C:\Windows\System32\drivers\etc\hosts 文件(请设置权限为完全控制,否则无法修改)

在 127.0.0.1  localhost   后面添加一行   127.0.0.1    www.zyp168.com 

(2)编辑 D:\JavaTools\Tomcat\apache-tomcat-7.0.73\conf\server.xml文件

在默认host配置:

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

后面再添加一个host标签(保留原来的默认localhost)

  <Host name="www.bbs.zyp168.com"  appBase="myapp" unpackWARs="true" autoDeploy="true"> 

自定义文件夹myapp全路径    D:\JavaTools\Tomcat\apache-tomcat-7.0.73\myapp

此处直接将项目放入myapp中所以不配置

<Context path="/MyDemo" docBase="D:\JavaTools\Tomcat\apache-tomcat-7.0.73\myapp\MyDemo.war" debug="0"  privileged="true" reloadable="true"/>

启动发现可以通过http://www.zyp168.com/MyDemo访问。吐舌头

注意:在myapp中部署的项目可以使用 www.zyp168.com进行访问(在webapps中部署的项目不可以,因为它对应的host为localhost)

当前状态发现work文件夹下面有两个目录:


work\Catalina\localhost  

work\Catalina\www.zyp168.com         (该文件夹下仅有MyDemo , 之前webapps下有些东西是否多余?大笑呵呵,不错,但不建议删,是范例等等)

且两个文件夹互不干扰,而自定义文件夹myapp仅仅生成了MyDemo(解压文件)

3、去项目名称

http://www.zyp168.com/MyDemo   ------------>   http://www.zyp168.com

看上述Tomcat的项目部署我们发现,直接访问不加项目名称时是Tomcat主页,我们可以在webapps下面的ROOT下找到项目主页可以得出结论,不加项目名称默认访问ROOT下的项目,故我们直接将myapp下的war文件名称改为ROOT.war即可(不打包的话,直接拷贝项目源代码到myapp下并重命名为ROOT文件夹即可)。

至此,一切完工!大笑(上述不足之处望大家指出!)

欢迎转载,转载请注明出处!

https://blog.csdn.net/zyp689/article/details/56835166#commentBox

略作补充 https://blog.csdn.net/wangl2014/article/details/79082076

猜你喜欢

转载自blog.csdn.net/mz1398145133/article/details/81169945