springmvc学习教程(一)-入门实例 引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。2.简要概述springmvcSpringC层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为FrontController的模式(后面对此模式有简要说明)。Spring的C层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C层框架的主要工作。并且spring的C层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView对象。一、入门实例1.搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web层的一个具体实包,DispatcherServlet也位于此包中。后文全部在spring3.0版本中进行,为了方便,建议在搭建环境中导入spring3.0的所有jar包(所有jar包位于dist目录下)。2.编写HelloWorld实例步骤一、建立名为springMVC_01_helloword,并导入上面列出的jar包。步骤二、编写web.xml配置文件,代码如下:?xml version=1.0 encoding=UTF-‐8? web-‐app version=2.5 xmlns= xmlns:xsi=‐instance xsi:schemaLocation= ‐app_2_5.xsd servlet servlet-‐namespring/servlet-‐name servlet-‐classorg.springframework.web.servlet.DispatcherServlet/servlet-‐class load-‐on-‐startup1/load-‐on-‐startup /servlet servlet-‐mapping servlet-‐namespring/servlet-‐name url-‐pattern*.do/url-‐pattern /servlet-‐mapping /web-‐app !-‐-‐ 所有请求都要由DispatcherServlet来处理,因此映射到/上面(包括静态页面), load-‐on-‐startup不加经测试也未见出错,而且如果要修改spring-‐servlet.xml的配置位置或名字, 可以加 init-‐param param-‐namecontextConfigLocation/param-‐name param-‐value/WEB-‐INF/spring-‐servlet.xml/param-‐value /init-‐param 但一定要放到load-‐on-‐startup前面,否则xml校验出错(经测试)。 简要说明:DispatcherServlet就是一个Servlet,也是对请求进行转发的核心Servlet。在这里即所 有.do 的请求将首先被DispatcherServlet处理,而DispatcherServlet它要作的工作就是对请求进行分 发(也即是说把请求转发给具体的Controller)。可以简单地认为,它就是一个总控处理器,但事实上 它除了具备总控处理理器对请求进行分发的能力外,还与spring的IOC 容器完全集成在一起,从而可以 更好地使用spring的其它功能。在这里还需留意servlet-‐namespring/servlet-‐name,下面 步骤三会用到。 -‐-‐ 步骤三、建立spring-servlet.xml文件,它的命名规则:servlet-name-servlet.xml。它的主要代码如下:1.?xml version=1.0 encoding=UTF-‐8? 2. 3.beans xmlns= 4. xmlns:xsi=‐instance xmlns:p= 5. xmlns:mvc= xmlns:context= 6. xmlns:util= 7. xsi:schemaLocation= ‐beans-‐3.0.xsd 8. ‐context-‐3.0.xsd 9. ‐mvc-‐3.0.xsd 10. ‐util-‐3.0.xsd 11. 12. bean id=simpleUrlHandlerMapping 13. class=org.springframework.web.servlet.handler.SimpleUrlHandlerMapping 14. property name=mappings 15. props 16. prop key=/hello.dohelloControl/prop!-‐-‐ 说明:hello.do的请求将给名为helloControl的bean进行处理。 -‐-‐ 17. /props 18. /property 19. /bean 20. bean id=helloControl class=controller.HelloWord/bean 21./beans 22. 复制代码步骤四、完成HelloWord.java的编写,代码如下:1.package controller; 2. 3.import javax.servlet.http.HttpServletRequest; 4.import javax.servlet.http.HttpServletResponse; 5. 6.import org.springframework.web.servlet.ModelAndView; 7.import org.springframework.web.servlet.mvc.Controller; 8. 9.public class HelloWord implements Controller { 10. public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 11. throws Exception { 12. ModelAndView mav = new ModelAndView(hello.jsp); 13. mav.addObject(message, Hello World!); 14. return mav; 15. } 16. } 17./* 18.* 说明:ModelAndView对象是包含视图和业务数据的混合对象,即是说通过此