Spring MVC 初体验

相信很多搞过Java的人都用过 Struts,或者转到用 Spring 框架后使用的仍然是Struts提供的MVC,那么是否想更多了解一下 Spring 本身的 MVC 呢,其实 Spring 的 MVC 还是很不错的,它×?Struts 中好的东西,还集 WebWork 的拦截器,下面来让我对 Spring MVC 作一个最简单的体验。 

称之谓简单是我觉得要去体验 Spring 的 MVC 的这个例子已经是精小到极致了,应用中没有配置ContextLoaderServlet或者ContextLoaderListener。借鉴于 Struts 的概念,这个实例中的的请求处理过程依次是/helloSpring.unmi->helloSpringController->helloSping.jsp),比如通过地址 http://localhost:8080/spring/helloSpring.unmi 访问,在基本Spring 的 Web容器收到这个请求,会通过 DispatcherServlet 根据配置的 Mapping 派发给 helloSpringController 处理,然后通知视图 helloSpring.jsp 显示结果。 

下面逐个介绍能演示这一过程的四个文件 

1. web.xml (不用说也知道是放在哪里的) 

 说明:配置了一个 DispatcherServlet 用来处理后缀为 unmi 的请求,后缀随便定义,如果想仿照着 Struts, 你也可以命作 *.do。还配置了要使用 jstl的核心标签库。 

2. UnmiServlet-servlet.xml(这个文件也是放在/WEB-INF/下的) 

这个文件为什么要命作 UnmiServlet-servlet.xml 呢?因为 web.xml 中配置了 DispatcherServlet 查找的默认 Spring Bean 配置文件就是指定的 servlet-name UnmiServlet + "-servlet.xml", 其中配置了最基本的三个 bean, 分别 

视图解析器:告诉从 Controller return 的 ModelAndView 去找哪个视图处理显示。这里的配置是在 WEB 应用路径下找相对应后缀为 jsp 的页面来处理,由下面的 HelloSpringController 可知道会要求 helloSpring.jsp 来显示内容。 

处理映射配置:标示匹配模式的 URL 将发给相应的控制器来处理,相当于 Struts 的 ActionMapping 配置项,也可配置多项。这里告诉 Web 容器,/helloSpring.unmi 的请求交给 helloSpringController 来处理。 

3. HelloSpringController.java (放到它该呆的 Package中) 

说明:往 request 中设置属性待视图显示,最后返回一个 ModelAndView, 逻辑名为 helloSpring, 依据前面配置 UnmiServlet-servlet.xml 的视图解析器会找到 /helloSpring.jsp 来显示。 

4. helloSpring.jsp (放在 WEB 应用的根目录下) 

说明:JSP 使用 jstl 当成一个显示模板来用,用 EL 标记把 request 中的 helloSpring 属性显示出来。 

最后稍加几句,因为本文的读者群是对 Java 并且至少对一种 MVC 框架比较熟悉,对 Spring 稍有常识的人员,所以没解释的太细,比如上面用到的 spring, jstl库,以及tld文件应该要知道需加在什么地方。好啦,确定配置完妥无误时,部署到 Web 容器中,通过形如这样的地址 http://localhost:8080/spring/helloSpring.unmi,你将会看到页面显示出 "Hello, Spring!",祝好运! 

参考:1. Spring MVC 入门
      2. 书籍《Spring框架高级编程》 -《Professional Java Development with the Spring Framework》

本文链接 https://yanbin.blog/spring-mvc-first/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments