SpringMVC入門示例教程(一)

其實之前剛剛學習框架的時候就已經聽說過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

發佈了54 篇原創文章 · 獲贊 43 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章