1. 程式人生 > >如何讓tomcat輸入http://localhost直接進入我指定專案的資料夾

如何讓tomcat輸入http://localhost直接進入我指定專案的資料夾

問題補充:這個tomcat下面還有其它專案,我改了兩個埠80和9000,現在都可以正常顯示
我希望對外網繫結公司域名的用80埠,而內部的用9000埠。
也就是希望輸入http://localhost直接到對外的test目錄下
輸入http://localhost:9000可以到root下面,即顯示tomcat的歡迎介面,
輸入http://localhost:9000/othertest進入其它專案
配置server.xml的我修改了很多次都不行,希望能給出具體的配置
終於找到辦法了,原來是我context的路徑弄錯了路徑間隔要用/不能用/的!
以下是修改的地方,給其它有同樣問題的人蔘考吧
<Context path="" debug="0" docBase="E:/Tomcat 5.5/webapps/newplantest" reloadable="true" privileged="true">
</Context>
<Context path="/root" debug="0" docBase="E:/Tomcat 5.5/webapps/ROOT" reloadable="true" privileged="true">
</Context>
</Host>

注:其實這裡實現的還不是我最初想的輸入http://localhost:9000可以到root下面,但這樣已經達到我的目的就ok了,另外,如果不設定/root的話是進不了ROOT下面的,其它放在webapps下面的專案不用配置,直接加專案名就可以了。

注:這樣配置還有一個問題是第二天才發現的--tomcat管理首頁那裡很多連線都進不去了,一看下面的路徑都多加了個root,把前面的root去掉就可以了,馬上想到修改ROOT下面的index.jsp的連結,根據經驗,訪問上級目錄要在在連結前面加個../ 加完以後(共有6處)儲存重新整理,鬱悶的是沒有任何反應,重啟tomcat再次開啟新頁面訪問,一樣沒有任何變化,難道是快取的原因?馬上清除ie檔案和歷史記錄,再次重新整理還是一樣,換個ip(這時已經對映到外網的ip了)也還是一樣,這下有點明白是沒有編譯導致的了,到work目錄下查詢.class檔案沒有找到,於是呼有搜尋了一陣,忙呼了一陣。說是刪除class檔案就會自動重新編譯,但就是沒有找到class檔案,後來看到 /webapps/ROOT/WEB-INF/lib下面竟然只有一個jar包(catalina-root.jar)解壓一看,裡面確實有一個index_jsp.class 可以確定是沒有重新編譯的問題了。但要自己重新編譯,壓縮成jar包也太麻煩了吧,而且刪除了那個jar包 直接報500的錯誤資訊,根本不會自動生成。後來直接開啟裡面的class檔案一看基本上跟頁面一樣,有些亂碼,修改了下儲存,再用WinRAR解開到那個目錄下把修改後的拖過來覆蓋,重啟tomcat重新整理,報了一堆的錯。這下更加明白了class檔案是不能直接編輯的。那麼總要生成一個新的來吧,如何生成?在root下生成不了了,稍微一想放到網站的目錄下不就可以了嗎?於是把root下的index.jsp檔案copy到自己目錄下,訪問自己目錄後面加上index.jsp成功顯示了修改過後的頁面。到對應的目錄下沒有找到編譯後的class,再次搜尋,仍然無果。最後帶著嘗試的心理在work下面一個很深的目錄下找到了

Tomcat 5.5/work/Catalina/localhost/_/org/apache/jsp 這個應該是臨時編譯的了。開啟class檔案一看連結內容正是修改過後的,於是copy這個檔案用上面的方法直接覆蓋原來的。重新整理頁面,點選連結,oye,終於成功了!

另外改兩個埠的配置是

                   <Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector
port="9000"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

我的專案下有很多的WEB檔案(html,jsp,),在位址列中輸入他的專案路徑時,怎麼樣才可以讓他不進入任何頁面,並且可以顯示,專案下的所有檔案

這裡改一下配置檔案就行了
找到你tomcat的安裝目錄下的
cong/web.xml檔案
找到    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
這個程式碼
然後把listings的值改成true 重新啟動tomcat就可以了