2011-04-12 49 views
0

我們有一個Java/J2EE Web應用程序,其中不同的用戶應該看到不同的頁面。我們有用戶登錄,將userId粘在sesssion中,讓他們使用webapp。可以在請求請求的基礎上爲J2EE Web應用程序設置基本目錄嗎?

我想要做的是爲每個用戶提供一個單獨的目錄,以便他們可以看到他們自己的文件和網頁。理想情況下,我可以創建一個servlet過濾器來查看userId,併爲該請求設置webapp的基本目錄。基本目錄需要存在於/ webapps目錄之外。

有沒有什麼辦法可以使用標準的servlet來做到這一點?

如果沒有,是否可以使用servlet容器特定的代碼?我們可以使用Jetty或Tomcat,甚至可以使用Glassfish。

回答

0

我認爲你需要決定什麼是你想做的事:

  • 如果你只是希望用戶能夠登錄並瀏覽文件和網頁,忘了J2EE,只是配置Apache Web服務器來做到這一點。它可以做安全的登錄,瀏覽用戶的主目錄等。

  • 如果你確實想要去J2EE路由,你必須編寫一個servlet來讀出用戶的憑證,然後使用java.io.File API剔除該目錄的內容。要顯示網頁,請在要顯示的特定文件上打開InputStream,並將其複製到servlet的OutputStream。不要忘記正確設置HttpServletResponse的內容類型(例如,網頁的「text/html」)。

+0

我認爲編寫我們自己的servlet是我們必須要做的。麻煩的是,我們必須複製默認靜態文件處理程序在servlet容器中執行的所有操作。這裏可能有很多東西:緩存,壓縮壓縮等等。我不想重新發明輪子,因此這個問題。 – ccleve 2011-04-13 01:58:08