2016-04-27 63 views
1

我想知道在處理網站中的多個頁面時,handeling servlet中的最佳做法是什麼。 servlet中的大多數GET請求只是返回一個新的jsp頁面。我曾想過的兩種方法:每個路徑一個Servlet或處理Servlet中的多個路徑?

  • 指派每個路徑的一個servlet在網站例如用於主頁,registerservlet註冊頁面,loginservlet的登錄頁面homeservlet等

  • 有少量處理多個路徑並相應地處理它們的servlet一個UserServlet,可以完成註冊和登錄用戶的工作。不過,我認爲這種方法可能會導致很多if語句,並且可能是非常難以管理的。什麼是理想的是在每個路徑中分配一個servlet方法(類似於Laravel的做法)

+1

與servlet調度一起使用框架的最佳選擇,就像spring-mvc一樣,所以你可以寫控制器,不要考慮這個東西 – AdamSkywalker

+1

不要問最佳實踐。他們幾乎總是以意見爲基礎。 – Kayaman

回答

1

通常情況下,最好取決於必須提供的上下文和功能。 我假設在大多數情況下允許從單個servlet處理多個路徑會更有效,因爲它允許在多個情況下僅開發一個servlet。 映射一組路徑,以一個單獨的servlet將在以下情況下是優選的:

  1. 由該組的路徑提供的功能是「相似的」,並且可以通過一個單獨的servlet處理,也許通過採取在考慮實際路徑。
  2. 應該提供的功能對用於調用servlet的實際路徑無關緊要。

但是它可能是案件分配每servlet的單一路徑將是有益的:

  1. 一個servlet的功能應該僅由單個路徑提供。
  2. 不同路徑的功能不同,需要不同的Servlet類來實現它們。
1

通常,我爲每個路徑創建一個Servlet。我的一位同事就是這樣做的。我認爲這取決於你自己的喜好。我更喜歡我的方式,因爲我可以更快地找到我正在尋找的servlet,並且你的類不會有成千上萬的LOC,所以我認爲這是清晰的一個方面。

第二種方法的好處是您可以更輕鬆地調用同一個servlet中的方法。無論如何,它們通常都是相互關聯的!如果你的servlet是分開的,你將不得不把請求轉發到另一個servlet,我認爲這個servlet的性能會低一些。

另一種方法是Servlet調度(也由@AdamSkywalker提及)。

-1

您可以使用百搭角色進行貼圖。例如;

* .jsp - >當客戶端請求任何jsp頁面時,您的servlet將處理請求。

+0

這個技巧會幫助做映射,但問題是不同的。 –