DispatcherServlet的用途
生活随笔
收集整理的這篇文章主要介紹了
DispatcherServlet的用途
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DispatcherServlet實際上是一個Servlet(它從HttpServlet繼承而來)。和其它Servlet一樣,DispatcherServlet定義在web應用的web.xml文件里。DispatcherServlet處理的請求必須在同一個web.xml文件里使用url-mapping定義映射。下面的例子演示了如何配置DispatcherServlet。
<web-app>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
</web-app>
在上面的例子里,所有以.form結尾的請求都會由名為example的DispatcherServlet處理。這只是配置Spring Web MVC的第一步。接下來需要配置DispatcherServlet本身和Spring Web MVC 框架用到的其他的bean。
正如在第 3.8 節 “ApplicationContext”中所描述的,Spring中的ApplicationContext可以被限制在不同的作用域(scope)中。在web MVC框架中,每個DispatcherServlet有它自己的WebApplicationContext,這個context繼承了根 WebApplicationContext的所有bean定義。這些繼承的bean也可以在每個serlvet自己的所屬的域中被覆蓋(override),覆蓋后的bean可以被設置成只有這個servlet實例自己才可以使用的屬性。
Spring Web MVC中的Context體系
在DispatcherServlet的初始化過程中,Spring會在web應用的WEB-INF文件夾下尋找名為[servlet-name]-servlet.xml的配置文件,生成文件中定義的bean。這些bean會覆蓋在全局范圍(global cope)中定義的同名的bean。
下面這個例子展示了在web.xml中DispatcherServlet的配置:
<web-app>
...
<servlet>
<servlet-name>golfing</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>golfing</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
要進行如上的servlet配置,你還需要配置/WEB-INF/golfing-servlet.xml這樣一個文件。golfing-servlet.xml這個文件應該聲明你在Spring Web MVC 框架中需要的bean。 這個文件的路徑也可以通過web.xml中servlet的初始化參數來更改。(詳情見下面的例子。)
WebApplicationContext僅僅是一個擁有web應用必要功能的普通ApplicationContext。它與一個標準的ApplicationContext的不同之處在于,它能夠解析theme(參考第 13.7 節 “使用主題”),并且它知道自己與哪個servlet相關聯(通過ServletContext)。WebApplicationContext被綁定在ServletContext上,當你需要的時候,可以使用RequestContextUtils提供的靜態方法找到WebApplicationContext。
Spring的DispatcherServlet有一組特殊的bean,用來處理請求和渲染相應的視圖。這些bean包含在Spring的框架里,可以在WebApplicationContext中配置,配置方式與配置其它bean相同。這些bean中的每一個都在下文作詳細描述。此刻讀者只需知道它們的存在,便繼續對DispatcherServlet進行討論。對大多數bean,Spring都提供了合理的缺省值,所以在開始階段,你不必擔心如何對其進行配置。
<web-app>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
</web-app>
在上面的例子里,所有以.form結尾的請求都會由名為example的DispatcherServlet處理。這只是配置Spring Web MVC的第一步。接下來需要配置DispatcherServlet本身和Spring Web MVC 框架用到的其他的bean。
正如在第 3.8 節 “ApplicationContext”中所描述的,Spring中的ApplicationContext可以被限制在不同的作用域(scope)中。在web MVC框架中,每個DispatcherServlet有它自己的WebApplicationContext,這個context繼承了根 WebApplicationContext的所有bean定義。這些繼承的bean也可以在每個serlvet自己的所屬的域中被覆蓋(override),覆蓋后的bean可以被設置成只有這個servlet實例自己才可以使用的屬性。
Spring Web MVC中的Context體系
在DispatcherServlet的初始化過程中,Spring會在web應用的WEB-INF文件夾下尋找名為[servlet-name]-servlet.xml的配置文件,生成文件中定義的bean。這些bean會覆蓋在全局范圍(global cope)中定義的同名的bean。
下面這個例子展示了在web.xml中DispatcherServlet的配置:
<web-app>
...
<servlet>
<servlet-name>golfing</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>golfing</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
要進行如上的servlet配置,你還需要配置/WEB-INF/golfing-servlet.xml這樣一個文件。golfing-servlet.xml這個文件應該聲明你在Spring Web MVC 框架中需要的bean。 這個文件的路徑也可以通過web.xml中servlet的初始化參數來更改。(詳情見下面的例子。)
WebApplicationContext僅僅是一個擁有web應用必要功能的普通ApplicationContext。它與一個標準的ApplicationContext的不同之處在于,它能夠解析theme(參考第 13.7 節 “使用主題”),并且它知道自己與哪個servlet相關聯(通過ServletContext)。WebApplicationContext被綁定在ServletContext上,當你需要的時候,可以使用RequestContextUtils提供的靜態方法找到WebApplicationContext。
Spring的DispatcherServlet有一組特殊的bean,用來處理請求和渲染相應的視圖。這些bean包含在Spring的框架里,可以在WebApplicationContext中配置,配置方式與配置其它bean相同。這些bean中的每一個都在下文作詳細描述。此刻讀者只需知道它們的存在,便繼續對DispatcherServlet進行討論。對大多數bean,Spring都提供了合理的缺省值,所以在開始階段,你不必擔心如何對其進行配置。
總結
以上是生活随笔為你收集整理的DispatcherServlet的用途的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红河州退役军人事务局关于军人家属调动有关
- 下一篇: 定向培养军士和定向士官有啥区别?