前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去。
首先还是从一个简单的Hello World项目说起:
我机器的开发环境为:
Ubuntu12.04(不同操作系统对本系列项目没有影响);
开发工具:Eclipse For JavaEE;
数据库:MySql5.5.35;
运行环境:TomCat V7.0;
JDK:JDK 1.7.0_45;
项目工程为:Dynamic Web Project;
一、项目依赖的jar包:
1.Spring框架依赖的jar包:
日志:commons-logging-1.1.3.jar;
JSTL支持:jakarta-taglibs-standard-1.1.2中的jstl.jar和standard.jar;
2.Spring的jar包:
spring-framework-3.2.5.RELEASE/libs中的jar包(这里为了方便我直接把全部都复制过去了);
把以上的jar包全部复制到项目的WebContent/WEB-INF/lib目录中。
二、在/WEB-INF中添加web.xml文件,文件内容如下:
930406f08da8ee4a2ff134b688d29d1de17c4c066a285c1f9071cb4874c305ff 104ce0f86471f18553dacb332199720eSpringMVCLesson6016cc98de5b53c0cfd1cdb1cf6f5e32 46309ed845064fdb06e746051efff9e0 700b5f17c4d842e4bd410f680f40946bSpringMVCLesson72eca723e64ddd01187c8b4d58572fcb b472d9135dbff3dd7fcc77f5995c97d0org.springframework.web.servlet.DispatcherServlet4f01b97d64aea37f699ead4eb7bd2bbd 380fae52cc7d04565d26dd4bbf4b5460 c13d9669d2c8f87a36a39c8f95f41552contextConfigLocation02b9ad8b27bc78bd91c18db845cdde4a f226acac8cb0e4a9d59fcba58b57a899classpath:springservlet-config.xml22c8aeb51b7638a9da01bd5a66154ac1 8f161518881ffd7712eaaadc573a3556 4781e2cbaa93c386271b418d3a01af0813065abc64b27fbca30c0905ab93e8ea0baf6f48b269a39eb229cac746730da64 20d42bb762ac7d7e594da3a264e47fcc b24306cffe25207457f6bb15e8d46fbd 870ae7edaa11700bcea972d006efb06e 700b5f17c4d842e4bd410f680f40946bSpringMVCLesson72eca723e64ddd01187c8b4d58572fcb 66e1775cbd9d5002635ae3285442ba88/3ec4a5583206d351b61ed79c1a0f9c66 cb808b0e21d3ee32c89fe10adc3f12ec 9ec23d40699efb4cb39a61797a06a5a1
首先是配置DispatcherServlet,根据系列(1)的Spring MVC响应流程图,可以看出DispatcherServlet主要就是拦截请求,然后调用对应的Controller和Action,解析和渲染指定的视图并返回响应 。
其中classpath:springservlet-config.xml指定具体的配置文件为springservlet-config.xml。
30945843165650cb3a703d5cc7093df915077971060975e63ef41ebb2d1d54ecf是启动顺序,让这个Servlet随Servletp容器一起启动,必须放在e2f901ada52f90d1351206ccffe56dee 配置的最后。
servlet-mapping中的ab3fd0bf60b0e0782a55d921e945b750指定配置的是哪个servlet,bf56c1cad9f0240f4d66b38e688b416f则指定拦截哪些请求到该servlet,这里配置的是拦截全部请求。
三、springservlet-config.xml文件配置:
在项目中新建一个resources的Source Folder文件夹,并添加springservlet-config.xml文件。
930406f08da8ee4a2ff134b688d29d1d3aaaa1120136861be9c5da73ffd32d71 0b8029a74caea9edd9a20e8ece79f596 f7ba1f27e11c63617ca69c495697dd74 1ecdab0dce83117029afc88fc366ec17 2b16763f2b9e5caa7def5ac59cf308dc eb1198b9f5734befe69c85a5bc83cb41 806f30e316c80ce3107d3343ac9f58bc a88e150a92f4f3689e3f1e02930ba113 ecbff95339f35adabad060cbf066e586 51ecc18d8e82ac96b8217ae1196a66f9 b9765f6ef62e96f6baf32cb43a8a322a 0d474d89936a8bdd46964846ce8b041b 7ea4b1506262239595c16a77e7a712b1 a69943b7435dd904d9d0ce28047f10be 0ed27f06d204ae823e006bc75fe72b71 2fdaca02ad13b125749943a4cbf16017 ba484756fcaed70e9c1db328950cb30c 6d11e96e4d7ebefb8827ae1f519425e7 e0867f1ee45411283017d6949f13a8bb 574d6e08aa6a6a0ec336e494faf9dbc6 09281dc0eca82a35760d4a2da82716e2 924162023eab358b80dd11238cb71810 911ae27f4b33ed5a6fa52bfc422bc45a a905597dc5f0575e5186f55f18e9f064 4bb0e59fd50cbfe6f6ce2215b9d94243 a6748f3712e7c0e1f60ffca24b3db7b0
b9218ddf369746a1b72d51779f5d6020 开启注解映射支持,它是为了简化配置的缩写形式,它相当于以下2个配置:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
由于我们在web.xml文件里面配置的是拦截所有的请求到该servlet,所以我们在这里要对静态资源文件映射作一下配置,否则请求这些资源文件会返回404:
eb1198b9f5734befe69c85a5bc83cb41806f30e316c80ce3107d3343ac9f58bca88e150a92f4f3689e3f1e02930ba113ecbff95339f35adabad060cbf066e58651ecc18d8e82ac96b8217ae1196a66f9b9765f6ef62e96f6baf32cb43a8a322a0d474d89936a8bdd46964846ce8b041b7ea4b1506262239595c16a77e7a712b1
开启Controller注解支持,并配置只扫描指定包下面的Controller:
2fdaca02ad13b125749943a4cbf16017 ba484756fcaed70e9c1db328950cb30c 6d11e96e4d7ebefb8827ae1f519425e7
配置视图解析器,并指定视图所在的文件夹:
574d6e08aa6a6a0ec336e494faf9dbc6 09281dc0eca82a35760d4a2da82716e2 924162023eab358b80dd11238cb71810 911ae27f4b33ed5a6fa52bfc422bc45a a905597dc5f0575e5186f55f18e9f0644bb0e59fd50cbfe6f6ce2215b9d94243
添加HelloWorldController,在项目中新建一个web的Source Folder文件夹,并在文件夹下面添加com.demo.web.controllers包,在包中添加一个HelloWorldController类,类中内容如下:
package com.demo.web.controllers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping(value = "/helloworld")public class HelloWorldController { @RequestMapping(value="/index", method = {RequestMethod.GET}) public ModelAndView index(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "Hello World!"); modelAndView.setViewName("index"); return modelAndView; } }
其中@Controller 注解把该class指定为controller,controller 上的@RequestMapping 注解的 value值指定该controller所映射的请求。
方法上的@RequestMapping 注解指定该方法为一个action,value 值指定该action所映射的请求,method 中的RequestMethod.GET指定该action只接受get请求。
ModelAndView 中的setViewName指定了该action所对应的视图名称,解析视图时会在springservlet-config.xml文件指定的视图文件夹中寻找对应的视图。
添加视图,在项目/WEB-INF文件夹下新建一个views文件夹,并在views中添加index.jsp视图,视图内容如下:
85828626327d2b7f8c8ab69624305ab1148f46b4bf73b4f1f5691dd3f8c3a542100db36a723c770d327fc0aef2ce13b193f0f5c25f18dab9d176bd4f6de5d30ea71ddd814d1e6bfc91cd420de31796d5b2386ffb911b14667cb8f0f91ea547a7Insert title here6e916e0f7d1e588d4f442bf645aedb2f9c3bca370b5104690d9ef395f2c5f8d16c04bd5ca3fcae76e30b72ad730ca86d ${message}36cc49f0c466276486e50c850b7e495673a6ac4ed44ffec12cee46588e518a5e
运行项目,由于我们之前配置了:abf0599a6fa16443d9c3b956e5f7ae86 所以直接可以看到结果:
把请求的URL地址改为配置的地址:http://localhost:8080/SpringMVCLesson/helloworld/index,可以看到结果相同:
代码下载:http://pan.baidu.com/s/1o6LRw7o
以上就是SpringMVC学习系列(2) 之 经典的HelloWorld实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!