2011-05-29 139 views

回答

1

請勿延伸FilterDispatcher

正如duffymo指出,如果你需要建立和拆除當前請求一個Hibernate會話,你應該使用一個攔截器。您也可以使用他鏈接的OpenSessionInViewInterceptor,或者如果您不使用Spring,則可以使用create your own

1

像你想擁有類似Spring的OpenSessionInViewInterceptor功能,這聽起來我。如果是的話,另一個框架已經做了這樣的事實表明這是一個很好的做法。

+0

我不知道春天。但問題是'FilterDispatcher'已被棄用。 – 2011-05-29 14:37:25

+0

爲什麼不只是一個過濾器? FilterDispatcher爲您做的是什麼? – duffymo 2011-05-29 14:39:23

+0

'公共無效的init(一個FilterConfig一個FilterConfig)拋出的ServletException { \t \t super.init(一個FilterConfig); \t \t嘗試{ \t \t \t HibernateUtil.createSessionFactory(); \t \t \t是System.out.print( 「=========應用Intialization ======」); \t \t} \t \t趕上(HibernateException的發送){ \t \t \t擲新的ServletException(); \t \t} \t}' FilterDispatcher剛剛打開一個會話。沒有其他的.. – 2011-05-29 14:51:15

0

的點通常是你不想將過濾器映射到所有請求 - 例如,你不需要交易,一些網頁 - 爲FilterDispatcher的API文檔說,

重要:此過濾器必須映射到所有請求。除非你確切地知道你在做什麼,否則總是映射到這個URL模式:/ *

所以FilterDispatcher是全部或全部。這說明了一箇舊的過濾器是以視圖模式打開會話的更好選擇。

相關問題