2016-04-27 61 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

这个技巧会帮助做映射,但问题是不同的。 –