2010-12-23 53 views
1

我有這個「癢」我想寫一個過濾器,將攔截請求並提取參數,然後將這些參數轉換爲屬性,以便他們到達BusinessLogic(BO)層它們應該是的對象的類型(例如Long,ObjectDTO,String等),目前我處理它的方式是BO接收請求提取參數,在nulls上執行驗證並將它們相應地轉換爲適當的類型。我的新方法更方便嗎,我讀過這個The Essentials of Filters,同時我也希望聽到比文章中提到的過濾器更多的用途。 我想到這個原因是因爲在處理doGet時,用戶可以省略參數,所以我會使用過濾器來設置它們是否丟失,有什麼意見?Servlet過濾器(參數到屬性)

回答

2

許多web框架都是這樣做的。

例如,除了許多其他功能外,Struts過濾器還確定請求調用Action。它使用反射來確定Action的屬性,它們是否可寫,以及它們的類型。然後,它會處理每個參數的名稱,如果它匹配動作的屬性,它會嘗試將參數值強制爲屬性類型的實例。如果成功,Action屬性將使用結果值進行設置。在Action配置正確後,過濾器調用它。

這個過程可能聽起來很複雜,但實際上,我並沒有對複雜程度做出正確的判斷。我建議你在嘗試編寫自己的代碼之前查看一下現有的web框架可以爲你做些什麼。即使你沒有預算,並且喜歡通過痛苦的經歷學習,研究其他框架將幫助你重新創造一個更好的自己的框架。

+0

謝謝你的回答。我同意你的觀點,儘管我喜歡學習苦澀的方式,但當我明白了這一點時,我知道要用更「框架化」的方式來覆蓋它很多代碼而不是爲單個servlet做這些事情,這讓我想到了製作過濾器的問題。總之,我一直在尋找Spring-MVC和Hibernate,但我還沒有讀到關於如何在Intellij創意中設置它的許多內容。 – Triztian 2010-12-23 19:28:28