轉自:http://blog.csdn.net/zyp689/article/details/56835166
今天來簡單講講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文件夾即可)。
至此,一切完工!(上述不足之處望大家指出!)
歡迎轉載,轉載請註明出處!