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