Java Web實踐專題——訪問路徑問題

來源:互聯網
上載者:User
 

Web應用是由大量的檔案組成的,系統等運行主要是靠檔案之間的相互調用來完成,調用就是根據檔案的位置來確定的。如果你在訪問某個檔案的時候,系統報下面這樣的錯誤,如果你的檔案名稱沒有寫錯,就是路徑出錯了。為了說明路徑問題,我們假設有以下的文檔結構:這是JBuilder2006下的一個,應用的名字是filepathweb,有兩個檔案夾,aa和bb,其中aa下有a_a.jsp和a_b.jsp兩個檔案,bb下有b_a.jsp檔案。 絕對路徑Web檔案訪問的基本格式如下:協議://主機:連接埠/應用程式名稱/檔案夾名/檔案協議:這裡應該是http協議;主機:是運行Web應用的伺服器的地址,可以使用主機名稱(或者網域名稱),可以使用IP地址,如果是原生話,可以使用虛擬IP地址(127.0.0.1),可以使用機器名。連接埠:Web伺服器運行時候所使用的連接埠,每個伺服器程式都會有連接埠。對於Web應用來說,預設的連接埠是80。應用程式名稱:在同一個應用伺服器上可能運行多個Web應用,這是允許的,我們在訪問某個應用的時候,需要指定所訪問的Web應用,這個路徑通常是Web應用檔案夾的名字,但是可以配置成其它的。應用的配置參見Web應用部署相關內容。檔案夾名:在同一個Web應用中可能會根據不同的功能建立不同的檔案夾來存放不同功能模組的檔案,為了訪問這個檔案,必須指定它所在的檔案夾。檔案:要訪問的jsp檔案。需要注意的是檔案夾名和檔案名稱共同確定了這個檔案,相當於檔案的完整路徑。對於Servlet的訪問,使用的不是檔案名稱,而是在web.xml中配置的路徑,可以參加Servlet部分內容。例:如何訪問上面的Web應用的中的a_a.jsp檔案,假設在本機上訪問,使用的連接埠是8083,部署的時候使用的應用的名字就是filepathweb。路徑應該這樣寫:http://127.0.01:8083/filepathweb/aa/a_a.jsp或者http://localhost:8083/filepathweb/aa/a_a.jsp需要解釋幾個問題:(1)有人說,上網的時候從來不需要輸入連接埠,原因是使用了預設連接埠,Web應用的預設連接埠是80。(2)有人說,從來也不需要輸入應用的名字,原因是設定了預設應用,關於預設應用請參考本書中的其它相關內容。(3)有人說,也不需要輸入要訪問的檔案名稱,原因是設定了歡迎網頁,在web.xml中設定的,關於這部分內容,請參考本書中其它相關內容。 相對路徑上面介紹了對於某個檔案的訪問方式,這裡的訪問方式叫絕對路徑,也就是我們使用完整的路徑,在web應用的檔案相互訪問的時候,除了可以使用絕對路徑,還可以使用相對路徑。例如,我們要在a_a.jsp檔案中訪問a_b.jsp,直接寫絕對路徑肯定沒有問題,但是寫起來不方便,另外如果部署的時候Web應用的名字發生變化了,訪問的路徑都需要改變,所以我們應該使用相對路徑。相對路徑有兩種情況:第一種,相對於當前檔案的位置;第二種,相對於應用的位置。相對路徑在使用的時候需要知道以下知識:(1)當前路徑是“.”,表示當前路徑。(2)上一級路徑是“..”,要訪問上一級檔案夾,就需要寫“./../”。(3)相對於應用的路徑直接寫“/”。根據上面的情況在a_a.jsp檔案中訪問a_b.jsp有以下3種方式(通過超鏈的方式):<a href="a_b.jsp">a_b.jsp</a><br><a href="http://localhost:8083/filepathweb/aa/a_b.jsp">a_b.jsp</a><br><a href="/filepathweb/aa/a_b.jsp">a_b.jsp</a><br>第一種情況,就是相對路徑,因為a_a.jsp和a_b.jsp在同一個檔案夾,所以直接寫a_b.jsp,系統會在a_a.jsp所在的檔案夾尋找a_b.jsp,使用的相對於當前檔案的路徑。第二種情況,使用了絕對路徑,就是前面介紹過的。第三種情況,使用了應用的位置資訊,然後只要寫在應用中的位置就可以了。這是訪問同一個檔案的情況,如果要訪問不同檔案夾的檔案怎樣辦呢?例如,要在a_a.jsp中訪問bb檔案夾中的b_a.jsp。對於bb中的b_a.jsp的訪問,上面使用的3種方法中的第二種和第三種同樣可以直接使用,但是相對於當前檔案的路徑比較麻煩,下面是在a_a.jsp中訪問b_a.jsp的3種方式:<a href="./../bb/b_a.jsp">a_b.jsp</a><br><a href="http://localhost:8083/testweb/bb/b_a.jsp">a_b.jsp</a><br><a href="/testweb/bb/b_a.jsp">a_b.jsp</a><br>需要說明的是相對於路徑,如果當前檔案夾比較深,可以多次使用“../”,“./”表示當前檔案夾。這裡介紹了檔案訪問相關的路徑問題,關於Servlet與JSP的訪問路徑問題,我們在Servlet部分介紹。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.