3

我昨天开始学习 Spring MVC,然后我发现在 Spring MVC(或其他框架)中,我们可以在一个 Web 应用程序中拥有许多 servlet。
Servlet 有一个 url 模式,如果有任何 http 请求,它将被匹配。另一方面,我们可以只使用@RequestMapping 对http 请求进行映射。
所以问题是为什么、何时以及在什么情况下我们应该使用多个 servlet ?
最好的做法是什么?

谢谢你。

4

2 回答 2

2

通常使用 Spring MVC,您在 web.xml 中声明一个 servlet,如下所示:

<servlet>
    <servlet-name>ActivityReplicator</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ActivityReplicator</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

这个 servlet 将负责处理对应用程序的每个请求,并将它们分派给正确的控制器。

使用单个 servlet 限制了必须在 web.xml 中完成的配置。Spring 控制器专门用于处理来自 DispatcherServlet 的重定向。正如 Nathan 解释的那样,控制器的配置不太复杂。

我会为您的应用程序中找到的每个域建议一个控制器。例如,一个控制器用于用户管理,另一个控制器用于论坛帖子管理。您可以阅读使用 Spring 的 Restfull 控制器,以了解要实现多少个控制器。

于 2012-05-11T13:29:07.597 回答
0

如果您想要诸如开发人员 API RESTful 服务之类的东西,使用 Jersey 之类的东西而不是 Spring MVC 的冗长性更容易实现,您可以拥有多个 servlet。在这种情况下,您将拥有一个用于使用 Jersey 的 API 服务的 servlet,以及一个用于处理前端网站的 Spring Servlet。

于 2012-05-11T18:26:14.093 回答