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