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