2012-01-01 25 views
3

我正在閱讀Spring in Action第3版,並且一直在試驗Spring MVC。 一切正常,直到我試圖將我的示例webapp「移植」到無狀態webapp。Stateless Spring MVC

要確定是否創建會話對象,我放在/* URL映射,這只是打印出來的req.getSession(false),並繼續鏈調試Servlet過濾器。

我試着改變了我所有的控制器的範圍來請求天真,但是當然,session仍然是在將模型綁定到表單上的頁面/控制器上創建的。 我不知道如何實現無狀態的Spring MVC?到目前爲止,我對這個問題的教程運氣不好。

+1

它爲什麼重要?如果會話中沒有任何內容存儲,則實際上很少或沒有狀態。你想解決一個具體問題嗎? – 2012-01-01 17:45:27

+0

@Dave Newton:不,這不是一個特定的問題。我只是對如何讓這本書中的簡單例子完全無狀態這一想法感到好奇,因爲我讀起來可以更容易聚集。 – bertie 2012-01-02 02:17:52

+1

如果在會話中沒有任何內容,那麼複製並不重要,除非是輕微(可能是)性能下降。儘管如此,根據我的經驗,這是一款非常罕見的應用程序,完全無國籍。 – 2012-01-02 02:21:17

回答

4

確保有所有JSP使用

<%@page session="false" %> 

否則會話將盡快爲JSP執行創建。

+0

中大獎!謝謝 ! – bertie 2012-01-02 02:14:06

+0

它也在這裏陳述:http://static.springsource.org/spring-security/site/faq.html#faq-unwanted-session-creation – bertie 2012-01-02 06:18:37

1

意外會話創建是Spring Security中無效錯誤報告的最常見來源之一(因此您在上面的註釋中鏈接到了常見問題解答)。

如果您在創建會話時遇到問題,Spring Security的debugging filter會很有用。它會在創建會話時自動記錄一條消息,並用堆棧追蹤它發生的位置。它還提供了其他有用的信息,其中包含標準日誌條目的更多人類可讀輸出,因此在開發環境中非常有用。如果您使用Spring Security的名稱空間支持,則只需將元素

<debug /> 

添加到您的配置中。

+0

謝謝!再見我的會話 - 調試servlet-filter :) – bertie 2012-01-03 01:59:09