2010-02-18 32 views
2

我試圖將會話跟蹤功能添加到一個12歲的java web應用程序。其中使用jsp和servlets的MVC模式。如果Cookie被禁用,我們需要使其工作。爲一個12歲的java web應用程序啓用url重寫

我想知道對此應用程序實施會話跟蹤的最佳方式是什麼? :)

當我使用getRequestDispatcher,我需要使用encodeURL嗎?喜歡這個 ?

getRequestDispatcher(res.encodeURL(jspname)); 

謝謝...

+0

有一個疑問,當我使用getRequestDispatcher,我需要使用encodeURL嗎?喜歡這個 ? getRequestDispatcher(res.encodeURL(jspname)); – coder247 2010-02-19 10:21:55

+0

不,你不需要。它不會創建* new *請求。它只是重用當前請求的另一個來源。然而你需要爲'response.sendRedirect()'和'response.encodeRedirectURL()'做。 – BalusC 2010-02-19 11:10:39

回答

4

你需要去通過應用尋找它產生的內部鏈接的地方,並通過HttpServletResponse.encodeUrl()方法這些鏈接。如果應用程序認爲有必要,這將重寫URL,例如,當檢測到客戶端不支持cookie時。

考慮到應用的時代,你可能不得不這樣做硬盤的方式,即使用JSP表達式,如:

<a href="<% response.encodeUrl("/link") %>"> 

如果JSTL是一個選項,那麼<c:url>使URL重寫稍微容易。

+1

我是否需要修改表單的操作? 所以總之我需要修改jsp和servlets中的所有鏈接。 – coder247 2010-02-18 08:41:27

+1

@ coder247:是的,表單動作,鏈接和重定向都需要編碼。 – skaffman 2010-02-18 08:45:49

+0

有沒有可用於URL重寫的任何tomcat配置? – coder247 2010-02-18 14:45:21