- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
3.2 Spring MVC 的 DispatcherServlet
回想一下,第 2 章建立了一个简单的 MVC 框架,包含一个充当调度员的 servlet。基于 Spring MVC,则无需如此。Spring MVC 中自带了一个开箱即用的 Dispatcher Servlet,该 Servlet 的全名是 org.springframework.web.servlet.DispatcherServlet。
要使用这个 servlet,需要在部署描述符(web.xml 文件)中使用 servlet 和 servlet-mapping 元素来配置它,如下所示:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- map all requests to the DispatcherServlet -->
<url-pattern>/</url-pattern>
</servlet-mapping>
servlet 元素内的 on-startup 元素是可选的。如果它存在,则它将在应用程序启动时装载 servlet 并调用它的 init 方法。若它不存在,则在该 servlet 的第一个请求时加载它。
Dispatcher servlet 将使用 Spring MVC 诸多默认的组件。此外,初始化时,它会寻找在应用程序的 WEB-INF 目录下的一个配置文件,该配置文件的命名规则如下:
servletName-servlet.xml
其中,servletName 是部署描述符中的 Dispatcher servlet 的名称。如果这个 servlet 的名称是 SpringMVC,则在应用程序目录的 WEB-INF 下对应的文件是 SpringMVC-servlet.xml。
此外,也可以把 Spring MVC 的配置文件放在应用程序目录中的任何地方,只要告诉 Dispatcher servlet 在哪里找到该文件。我们使用 servlet 声明下的一个 init-param 元素来做到这一点。init-param 元素拥有一个值为 contextConfigLocation 的 param-name 元素,其 param-value 元素则包含配置文件的路径。例如,可以利用 init-param 元素将默认的文件名和文件路径更改为 WEB-INF/config/simple-config.xml。
< servlet>
< servlet-name>springmvc< /servlet-name>
< servlet-class>
org.springframework.web.servlet.DispatcherServlet
< /servlet-class>
< init-param>
< param-name>contextConfigLocation< /param-name> < param-value>/WEB-INF/config/simple-config.xml< /param-value> < /init-param> < load-on-startup>1< /load-on-startup> < /servlet>
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论