java tomcat虛擬目錄的深刻了解

 咱們知道,Web網站中的內容(包括網頁,圖片,音頻文件等)通常都存放在App的目錄下。但隨着網站內容的不斷豐富,用戶須要把不一樣層次的內容組織成網站的子目錄。咱們一般的作法是在網站主目錄下新建子目錄,並把相關的內容放置到對應的目錄。此外,還有另一種方法,就是建立虛擬目錄。虛擬目錄能夠是磁盤上有權限操做的任意路徑(將虛擬路徑設置爲readOnly是絕對不行的),也能夠是網絡中其餘計算機的目錄。php

 

本人qq羣也有許多的技術文檔,但願能夠爲你提供一些幫助(非技術的勿加)。

 

QQ羣:   281442983 (點擊連接加入羣:http://jq.qq.com/?_wv=1027&k=29LoD19web

 
    
 
    相對而言,建立子目錄的方式更安全高效。但爲何還要有虛擬目錄呢?這是由於虛擬目錄解決了Web文件必須放在Web根目錄下的難題。一方面,這樣大大增長Web工程的存儲空間。另外一方面,也爲多個不一樣的工程共享同一份文件提供了保障。好比,當咱們多個網站都須要訪問同一份文件時,咱們只需將該虛擬路徑指向改文件的地址便可,這樣就避免了同一份文件屢次拷貝的問題。
 
    在Tomcat7版本下,配置虛擬路徑修改如下兩個文件:
 
    1.server.xml
    打開Tomcat目錄下的/conf/server.xml文件,在Host以前加入下面紅色部分的內容。
<Host name="localhost" appBase="webapps"
            unpackWARs="true" autoDeploy="true">
 
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
   
 <Context path="/appName/filePath" docBase="/opt/filePath" reloadable="true" debug="0"/>
</Host>
    path : 工程名稱+文件路徑,當訪問path目錄下的文件時,實則訪問docBase目錄下的文件。
    docBase : 文件的真實路徑。注意這裏若是有文件長傳,則將上傳的文件路徑設置爲docBase,而不是path。
2. web.xml
    打開Tomcat目錄下的/conf/web.xml,將下面紅色部分listings的屬性設置爲True。
<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>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
 
    不能否認,虛擬目錄的使用爲咱們的開發和部署帶來了極大的便利,可是因爲配置虛擬目錄必需要將listings屬性設置爲True,這樣就將該目錄下的全部文件都暴露給了用戶,這樣也給系統的使用帶來了必定的風險。因此,選擇使用虛擬目錄必定要慎重。
 

我的公衆號謝謝各位老鐵支持
apache

本人qq羣也有許多的技術文檔,但願能夠爲你提供一些幫助(非技術的勿加)。

 

QQ羣:   281442983 (點擊連接加入羣:http://jq.qq.com/?_wv=1027&k=29LoD19安全

 

個人淘寶店,能夠進去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop網絡

相關文章
相關標籤/搜索