SpringMVC入门示例教程(一)

来源:互联网 发布:公务员培训老师知乎 编辑:程序博客网 时间:2024/04/29 20:43

其实之前刚刚学习框架的时候就已经听说过SpringMVC了,那个时候还不知道SpringMVC是干嘛的,感觉作用应该类似于Spring啥的,然后工作当中也很少用到SpringMVC,当然,工作经验本身就蛮少,也就没怎么去了解SpringMVC了,这几天突然想了解一下SpringMVC,然后就是各种度娘了,貌似学习所有的框架技术基本上都是先从一个简单的demo示例开始,例如hello world,像之前了解过的SSH框架,SSI框架、jFinal框架等等,,至少我是这样的,先把一个简单的Demo框架搭建起来,让她能够正常运行起来,然后再想着去加点东西啥的。。好了,不废话了。

Spring MVC请求处理的整体流程如图:

这里写图片描述

这里的示例用的
spring的jar包版本是3.2.0,
jdk版本是1.6

工程结构图:

这里写图片描述

1、在elcipse中新建一个Dynamic Web Project工程项目,之后把需要的jar包拷贝到项目的/WEB-INF目录下的lib目录中,然后进行build path,至于需要哪些jar包,之前用过spring的应该知道使用spring的时候需要导入哪些jar包,而springMVC和Spring的jar包是共用的,直接将spring所需要的jar包导入即可,不需要再导入额外的jar包文件,可以直接从官网下载,然后那些doc和source的jar包可要可不要,建议不要。。

所需的jar包截图:

这里写图片描述

其中红线框起来的部分是搭建这个springmvc的主要jar包,其余三个是辅助的,用作其他用的。。这个简单示例中可以不需要。

2、因为SpringMVC是围绕DispatcherServlet来的,所以这里需要修改一下web.xml文件的配置:

<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.5"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/javaee"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <display-name>springmvc_demo_02</display-name>  <servlet>    <servlet-name>SpringMVC</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为-->    <!--[<servlet-name>]-servlet.xml,如SpringMVC-servlet.xml -->    <!-- <init-param>       <param-name>contextConfigLocation</param-name>       <param-value>/WEB-INF/SpringMVC-servlet.xml</param-value>    </init-param> -->    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>SpringMVC</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

注意:这个地方的servlet-name需要我们注意一下,因为等下我们还需要springMVC的另一个配置文件,这个文件的命名通常情况下都会以[servlet-name]-servlet.xml进行命名,主要用于springMVC的一些相关配置啥的,例如注解映射支持、视图解析,拦截器等等。。。

3、因为这里采用的是默认模式,然后就需要把SpringMVC-servlet.xml配置文件放在WEB-INF目录下,工程会自动去加载。我们可以新建一个xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="        http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">    <context:component-scan base-package="org.springframework.samples.petclinic.web" />    <bean name="/hello" class="com.feizi.controller.HelloController"></bean>    <bean id="viewResolver"        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/"></property>        <property name="suffix" value=".jsp"></property>    </bean></beans>

这里写图片描述

5、好了,到了这里,关于SpringMVC的相关配置基本上都已经配置完了,当然,因为这个仅仅只是一个入门实例,前面有提到过,先把基本的框架搭建起来,让她能够正常运行起来,后续再做调整。。。

接下来,我们需要编写一个controller控制器,这里暂时还没有用到注解的方式,后面会介绍到使用注解的方法。然后只需要实现一个接口就行,例如编写一个HelloController类实现Controller接口;再实现这个接口中的handleRequest方法;然后返回一个ModelAndView。这个ModelAndView就是返回的一个视图,也可以传递参数,例如最后返回一个“/hello“,然后就会通过SpringMVC的视图渲染到hello.jsp页面。。

因为在之前的SpringMVC-servlet.xml配置文件中已经做了相关配置了,设置的页面后缀为.jsp的,所以,会直接跳转到hello.jsp页面,当然,这里还可以配置其他视图类型。不仅仅是jsp。。。

6、控制器HelloController类

/**  * 文件说明  * @Description:扩展说明  * @Copyright: 2015 dreamtech.com.cn Inc. All right reserved  * @Version: V6.0  */package com.feizi.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;/**   * @Author: feizi * @Date: 2015年5月6日 上午10:27:19  * @ModifyUser: feizi * @ModifyDate: 2015年5月6日 上午10:27:19  * @Version:V6.0 */public class HelloController implements Controller {    /**     * 方法说明     * @Discription:扩展说明     * @Author: feizi     * @Date: 2015年5月6日 上午10:27:20     * @ModifyUser:feizi     * @ModifyDate: 2015年5月6日 上午10:27:20     * @see org.springframework.web.servlet.mvc.Controller#handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)     */    @Override    public ModelAndView handleRequest(HttpServletRequest arg0,            HttpServletResponse arg1) throws Exception {        System.out.println("==========================Hello World!=========================");        //实际上就是跳转到hello.jsp页面        return new ModelAndView("/hello");    }}

7、一个简单的入门级SpringMVC示例已经完成了,我们运行一下,看看效果,看能不能正常运行。。。

这里写图片描述

这里写图片描述

8、关于上面说的那个SpringMVC的核心配置文件SpringMVC-servlet.xml,在这里还需要再啰嗦一下,比如说,我们在web.xml文件中配置的servlet-name是SpringMVC,如果是采用默认的方式那么SpringMVC的配置文件的命名就应该是: [servlet-name]-servlet.xml ,即:SpringMVC-servlet.xml 。且这个配置文件还必须得放在/WEB_INF目录下面,不然工程找不到,除非我们手动进行指定配置、、、

例如:如果我们采用的是默认的方式,然后SpringMVC-servlet.xml文件的命名又不是以[servlet-name]-servlet这种方式进行命名,那运行的时候就会报错,我这里做个示范修改一下,假设我们在web.xml中将servlet-name指定为SpringMVC,然后配置文件名是SpringMVC1-servlet.xml,那么运行的时候就会报异常。

这里写图片描述

当然,我们也可以不使用默认的方式,但是需要我们手动进行配置指定。通过<init-param>属性进行指定即可。。通过指定之后,运行就又正常了

这里写图片描述

ok,到这里就基本上完成了。。。之后会试着学习下使用注解的方式和将SpringMVC的配置文件放到其他的位置的配置方法。

参考文章:http://elf8848.iteye.com/blog/875830/

源码已打包上传至csdn:
http://download.csdn.net/detail/hu1991die/8668927

2 0