Servlet的最佳實踐

1、定義公共servlet類
   首先,在創建servlet時,要確保將該servlet的類定義爲public。Weblogic

Server(或其他任何應用服務器)需要以這種指定方式來訪問類。應用服務器可

能顯示缺乏訪問的錯誤,這類錯誤極難診斷。
2、使用定義的響應代碼
   HttpServletresponse爲所有HTTP響應代碼提供公共的、靜態的、最終的定義

。使用它們而不是數字狀態代碼值,可以提高代碼的可讀性,減少出錯的可能。

例如,與其使用response.sendError("503");不如使用
response.sendError(response.SC_SERVICE_UNAVAILABLE);
3、使用無參數的init()方法
   與其重寫HttpServlet方法init(),不如重寫init(ServletConfig config)。

在出現servlet2.3規範之前,init()方法必須調用super.init(config)。如果開

發人員忘記進行這項必須得調用,那麼servlet就有可能會出錯。新的init()方法

更安全一些,因爲它不要求開發人員進行任何特殊的調用。
4、使用web應用程序生命週期事件
   可以使用ServletContextListener.contextInitialized()回調來完成初始化

任務,所產生的效果比使用servletgenghsevlet.init()方法將這些初始化任務捆

綁到某一特定的servlet,可以再配置web應用程序方面限制將來的靈活性。監聽

器提供了作爲整體捆綁到web應用程序的一個初始化機制。
5、牢記可伸縮性
   應避免做一些抑制可伸縮性的事,比如對servlet使用單線程模型。回顧一下

前面的知識就會知道,該模型一次只能允許對servlet執行一個線程。如果可能的

話,不要使用該模型。
6、支持RequestDispatcher
   不要對本地url使用HttpResponse.sendRedirect()。在可以內部地處理請求時

,重定向帶來了一些不必要的開銷。可以使用RequestDispatcher.forword()方法

將用戶重定向到另一個頁面(不如,如果用戶會話無效的話就重定向到登陸頁面

)。
7、調用include()來重用公共組件
   可以使用RequestDispatcher.include()方法來重用公共HTML組件,以便有計

劃地包括服務器端。例如,一個應用程序可以包括每一頁上的體育部分。編寫一

個響應體育得分的servlet,並使每個生成頁面上都包含該servlet。
8、不要關閉/終止響應流
   正如前面所提到的,在Weblogic Server不需要多次創建並毀壞servlet來處理

單個客戶端會話時,性能就會獲得提高。爲了避免破壞Keep—Alive優化,不要關

閉或刷新在servic()中發送的流。
   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章