簡體   English   中英

Servlet過濾器與ServletRequestListener

[英]Servlet Filter vs. ServletRequestListener

我想將JPA EntityManager綁定到每個請求的當前線程(通過ThreadLocal),可以通過ServletRequestListener或Filter完成。 聽眾看起來更干凈,在這種情況下我不需要過濾器的額外可能性。 但也許過濾器有一個我錯過的優勢。

我應該使用Servlet過濾器還是ServletRequestListener來做到這一點?

為了你的目的,沒有太大的區別。 但是聽眾是“更清潔”的,因為讀取你的代碼的人會立即知道這段代碼的目的不是攔截請求或改變它或做其他過濾器可以做的事情。

例如,Spring使用ServletRequestListener來允許不使用Spring自己的Web MVC框架的Spring基於Web的應用程序訪問特定於Web的功能,例如會話范圍的bean。 看到這個文檔

編輯:為了更清楚,我提到了Spring的RequestContextListener,因為它完全符合你所說的:創建一個ThreadLocal對象來存儲可以在整個請求生命周期的整個過程中訪問的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM