每个路径一个Servlet或处理Servlet中的多个路径?

时间:2016-04-27 09:10:48

标签: java jsp servlets java-ee

我想知道在处理网站中的许多页面时,处理servlet的最佳做法是什么。 servlet中的大多数GET请求只返回一个新的jsp页面。我曾想过两种方法:

  • 为网站中的每个路径分配一个servlet,例如主页的homeservlet,registerervlet用于注册页面,loginservlet用于登录页面等。

  • 有少量servlet处理多个路径并相应地处理它们,例如一个UserServlet,可以完成注册和登录用户的工作。但是我认为这种方法可能会导致很多if语句并且可能非常难以管理。什么是理想的是将servlet中的方法分配给每个路径(类似于Laravel的工作方式)

3 个答案:

答案 0 :(得分:1)

通常,我为每个路径创建一个Servlet。我的一位同事就是另一种方式。我认为这取决于你自己的喜好。我更喜欢自己的方式,因为我可以找到我正在快速搜索的servlet,而且你的课程不会有数千个LOC,所以我认为这是一个清晰的方面。

第二种方法的好处是可以更轻松地在同一个servlet中调用方法。通常,他们无论如何都是相互关联的!如果您的servlet是分开的,那么您必须将请求转发给另一个servlet,我认为这个servlet的性能会降低。

另一种方法是Servlet调度(@AdamSkywalker也提到)。

答案 1 :(得分:1)

通常情况下,最好的方法取决于必须提供的上下文和功能。 我认为在大多数情况下允许从单个servlet处理多个路径会更有效,因为它允许为多个案例开发一个servlet。 在以下情况下,将一组路径映射到单个servlet是更可取的:

  1. 路径组提供的功能“类似”,可以由单个servlet处理,也许可以考虑实际路径。
  2. 应该提供的功能对于用于调用servlet的实际路径无关紧要。
  3. 但是,每个servlet分配一个路径可能是有益的:

    1. servlet的功能只能由单个路径提供。
    2. 不同路径的功能不同,需要不同的Servlet类来实现它们。

答案 2 :(得分:-1)

您可以使用小丑角色进行制图。例如;

*。jsp - >当客户端请求任何jsp页面时,您的servlet将处理请求。