1.2  第一个 SpringMVC  程序


1.2.1  导入 Jar  包

在创建好 web 项目后,首先要导入 Jar 包。SpringMVC 需要的基本 Jar 包,是在原 Spring
的 Jar 包(Spring 课程中讲完事务部分后所用到的 Spring 的所有 Jar 包)基础上,增加了两个 Jar 包。
Spring-context-support:包含支持 UI 模版,邮件服务,缓存 Cache 等方面的类。
Spring-webmvc:对 SpringMVC 的实现。

_007_SpringMVC_第一个SpringMVC程序

1.2.2 注册 注册 中央调度器

_007_SpringMVC_第一个SpringMVC程序
(1 ) 全限定性类名

该中央调度器为一个 Servlet,名称为 DispatcherServlet。中央调度器的全限定性类名在
导入的 Jar 文件 spring-webmvc-4.2.1.RELEASE.jar 的第一个包 org.springframework.web.servlet
下可找到。

_007_SpringMVC_第一个SpringMVC程序
(2 ) <load-on-startup/>

在<servlet/>中添加<load-on-startup/>的作用是,标记是否在Web服务器(这里是Tomcat)
启动时会创建这个 Servlet 实例,即是否在 Web 服务器启动时调用执行该 Servlet 的 init()方
法,而不是在真正访问时才创建。
它的值必须是一个整数。

当值大于等于 0 时,表示容器在启动时就加载并初始化这个 servlet,数值越小,该 Servlet
的优先级就越高,其被创建的也就越早;

  当值小于 0 或者没有指定时,则表示该 Servlet 在真正被使用时才会去创建。

  当值相同时,容器会自己选择创建顺序。
(3 ) <url-pattern/>

对于<url-pattern/>,不能写为/*,最好也不要写为/,建议写为*.do 的形式。详见 1.4 再
解<url-pattern/>。
(4 ) 配置文件位置与名称

注册完毕后,可直接在服务器上发布运行。此时,默认浏览器页面,及 MyEclipse 控制
台均会抛出 FileNotFoundException 异常。即默认要从项目根下的 WEB-INF 目录下找名称为
Servlet 名称-servlet.xml 的配置文件。这里的“Servlet 名称”指的是注册中央调度器时
<servlet-name/>标签中指定的 Servlet 的 name 值。本例配置文件名为 springmvc-servlet.xml。

_007_SpringMVC_第一个SpringMVC程序

从 DispatcherServlet 类的父类的源码注释 FrameworkServlet 中也可看到相关描述:

_007_SpringMVC_第一个SpringMVC程序

而一般情况下,该配置文件是放在类路径下,即 src 目录下。所以,在注册中央调度器
时,还需要为中央调度器设置查找 SpringMVC 配置文件路径,及文件名。

_007_SpringMVC_第一个SpringMVC程序

打开 DispatcherServlet 的源码,其继承自 FrameworkServlet,而该类中有一个属性
contextConfigLocation,用于设置 SpringMVC 配置文件的路径及文件名。该初始化参数的属性
就来自于这里。

_007_SpringMVC_第一个SpringMVC程序

_007_SpringMVC_第一个SpringMVC程序

_007_SpringMVC_第一个SpringMVC程序

_007_SpringMVC_第一个SpringMVC程序

1.2.3  创建 SpringMVC  配置文件

在工程的类路径即 src 目录下创建 SpringMVC 的配置文件 springmvc.xml。该文件名可以
任意命名。而该 xml 文件的约束,则使用 Spring 配置文件最全约束。

_007_SpringMVC_第一个SpringMVC程序
1.2.4 定义处理器

该处理器需要实现 Controller 接口。

_007_SpringMVC_第一个SpringMVC程序

ModelAndView 类中的 addObject()方法用于向其 Model 中添加数据。Model 的底层为一
个Map。另外需要注意的是,addObject()方法的返回值为ModelAndView,则说明可向该Model
中连续添加多个数据。

_007_SpringMVC_第一个SpringMVC程序


1.2.5 注册处理器

在 springmvc.xml 中注册处理器。不过,需要注意处理器的 id 属性值为一个请求 URI。
表示当客户端提交该请求时,会访问 class 指定的这个处理器。

_007_SpringMVC_第一个SpringMVC程序

1.2.6  定义目标页面

在 WEB-INF 目录下新建一个子目录 admin,在其中新建一个 JSP 页面 show.jsp。


1.2.7  修改视图解析器的注册

SpringMVC 框架为了避免对于请求资源路径与扩展名上的冗余,在视图解析器
InternalResouceViewResolver 中引入了请求的前辍与后辍。而 ModelAndView 中只需给出要跳
转页面的文件名即可,对于具体的文件路径与文件扩展名,视图解析器会自动完成拼接。

_007_SpringMVC_第一个SpringMVC程序

1.2.8  修改处理器

_007_SpringMVC_第一个SpringMVC程序

相关文章: