为什么,何时以及在哪种情况下,我们应该在spring mvc中使用多个servlet而不是单个servlet?

时间:2012-05-11 13:02:49

标签: java-ee spring-mvc

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

谢谢。

2 个答案:

答案 0 :(得分: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 Controllers专门用于处理来自DispatcherServlet的重定向。正如Nathan所解释的那样,控制器配置起来并不复杂。

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

答案 1 :(得分:0)

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