配置DispatcherServlet的方法介绍

时间:2022-11-09 10:27:42

dispatcherservlet是spring mvc的前端控制器,要想在程序中使用dispatcherservlet,我们需要在web.xml中配置一个dispatcherservlet。配置的方法是,在web.xml文件中,配置一个<servlet>节点,它的子节点<servlet-name>可以自定义一个名字,例如sample,<servlet-class>指定为org.spring.springframework.web.servlet.dispatcherservlet。

当dispatcherservlet被载入后,它将从xml文件载入spring的应用上下文,而从哪个xml文件载入呢?xml文件的名字取决于dispatcherservlet的名字。如果dispatcherservlet的名字为sample,那么它将从sample-servlet.xml的文件中载入应用上下文。

接下来,我们需要配置哪些url需要由dispatcherservlet来处理,这是通过在web.xml中配置一个<servlet-mapping>节点来实现的。如下所示。

?
1
2
3
4
<servlet-mapping>
  <servlet-name>sample</servlet-name>
  <url-pattern>*.htm</url-pattern>
</servlet-mapping>

正如前面提到的dispatcherservlet将从<servlet-name>命名的xml中载入应用的上下文。那么这就要求我们把所有需要载入的bean都定义在这个xml文件中。这显然是不利于对bean的分类的管理的。例如,我们想把持久层的bean放在一个xml文件中,把服务层的bean放在另一个xml文件中,把web层的bean也单独放在一个xml文件中。那么dispatcherservlet如何载入多个xml文件呢?

为了把这些xml都载入进来,我们需要在web.xml文件中配置一个上下文载入器,上下文载入器用于载入除dispatcherservlet载入的xml文件之外的文件。最常用的上下文载入器就是一个servlet监听器,名称为contextloadlistener。我们需要在web.xml中这样配置它。

?
1
2
3
<listener>
  <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
</listener>

默认情况下,上下文载入器将会在/web-inf/applicationcontext.xml中载入配置,但如果想载入多个配置文件,我们需要改变它的默认行为。

可以通过在servlet上下文中设置contextconfiglocation参数来为上下文载入器指定一个或多个spring配置文件。如下。

?
1
2
3
4
5
6
7
8
<context-param>
  <param-name>contextconfiglocation</param-name>
  <param-value>
    /web-inf/a.xml
    /web-inf/b.xml
    /web-inf/c.xml
  </param-value>
</context-param>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/li_canhui/article/details/85721502