這是我第二次提出這個問題 - 這次我會提供一些更多的細節來幫助獲得明智的答案。如何從servlet獲取JSP的服務器文件路徑?
我在這裏真正要做的是填充一個下拉菜單,其數據是從一個應該在頁面加載時運行的可執行文件中動態生成的。值得注意的是,可執行文件必須位於服務器上JSP本地的目錄中。我的公司有3到4個這個網站的克隆,我不能將可執行文件放在一些絕對的文件路徑中 - 它必須是相對的(因爲它將與其他團隊一起被JSP頁面一起發送到其他處理器)。
我知道JSP必須與相對路徑運行的可執行文件,因爲我可以運行這個能力:
<form action="./my_executable_that_generates_a_dynamic_page">
不過,我需要這從一個servlet運行使用JavaScript來填充保管箱。
<%= new File("./exec_produce_dropdown_list").getPath() %>
上面的代碼片段給了我一個不同的目錄。
我也試過:
<%= new File(new File(request.getServletContext().getRealPath(request.getRequestURI())).getParent().replace('\\', '/'), "exec_produce_dropdown_list"); %>
這是非常接近,除非有一個在URI不對應於文件系統(這是我們所擁有的)虛擬路徑,它贏得了」 t指向正確的目錄。
有沒有一種簡單的方法讓我運行可執行文件? 我也想補充說,沒有web.xml供我使用。
什麼是正確的目錄?文件位於何處?如果它在您的Web應用程序的根目錄中,請嘗試使用<%= application.getRealPath(「/ exec_produce_dropdown_list」)%>作爲路徑。 – rickz
真實路徑不對應。我發現我的解決方案,謝謝。 – TLane