使用瀏覽器訪問tomcat伺服器下的檔案
首先簡單介紹一下tomcat,tomcat是一個輕量級web伺服器,一般用於響應一個HTML請求,實際上是執行jsp和servlet頁面,在這之前要對執行tomcat的機器上要進行正確的配置,不過其只適合於中小型系統或訪問使用者不是很多的場合,當用戶通過瀏覽器輸入配置好的URL後便可訪問tomcat下的資原始檔。
由於本人在編寫一個android APP時需要使用HTTP協議下載幾個檔案,所以直接在個人主機上開了一個tomcat伺服器,將所有需要下載的檔案放在一個web工程下用於訪問下載。
下載
在Apache Tomcat官網下載tomcat.zip檔案,版本和jdk版本一致,下載後解壓,然後配置JAVA_HOME環境變數,然後雙擊bin目錄下的startup.bat檔案開啟tomcat,最後在瀏覽器位址列輸入
配置
在webapps目錄下新建一個專案,把所有的檔案放在其中,在這個專案下再新建一個WEB-INF資料夾,資料夾中新建一個web.xml檔案,WEB-INF下的檔案是不能在瀏覽器上直接訪問的,web.xml是一個web程式配置檔案,其中描述了servlet和其他應用元件配置及命名規則。
然後開啟conf/server.xml主配置檔案,其中有很多元素,在這裡主要講一下Host和Context,Host指一個虛擬主機,可包含多個Context,Context指上下文內容,為Host上執行的一個web應用。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="\mp3"
reloadable="true" debug="0"/>
</Host>
(1)name指主機名,可任意命名;
(2)appBase指虛擬主機的目錄,可以為絕對路徑,也可為CATALINA_HOME(環境變數路經)的相對路經,預設為CATALINA_HOME/webapps;
(3)unpackWARs如果此項設定為true,表示把WEB應用的WAR檔案先展開為開放目錄結構後再執行.如果設為false將直接執行為WAR檔案;
(4)autoDeploy如果此項設為true,表示Tomcat服務處於執行狀態時,能夠監測appBase下的檔案,如果有新有web應用加入進來,會自運釋出這個WEB應用;
(5)path指映像目錄,映像到docBase的實體地址,“/test”指定URL入口,“ ”指預設入口為虛擬根目錄,即webapps/ROOT;
(6)docBase指實際專案的實體地址,存在任一磁碟中,可為絕對路徑,也可為appBase的相對路徑。
(7)reloadable如果這個屬性設為true, Tomcat伺服器在執行狀態下會監視在WEB-INF/classes和Web-INF/lib目錄CLASS檔案的改運.如果監視到有class檔案被更新,伺服器自重新載入Web應用。
最後還要在Connector元素下配置好port屬性,即埠號,預設為8080,事先可在命令列中檢視埠是否被佔用,輸入netstat-aon|findstr “8080”命令,如果沒有顯示則為空閒狀態
我新建了一個web專案mp3,下面放了幾個不同型別的檔案用於下載
補充說明
由於本人使用HTTP下載時要傳入相應的URL,但android模擬器上訪問本機伺服器時需要更改ip,因為模擬器把自己作為localhost,訪問主機等於訪問模擬器自己,使用android內建的ip:10.0.2.2即可訪問到伺服器。