1. 程式人生 > >SpringMVC(3.2.4)搭建詳解

SpringMVC(3.2.4)搭建詳解

      由於這段時間公司事情不多,就趁空閒時間自學一下 SpringMVC,雖然之前用過這個框架,但是都是架構師搭完之後,我們這些程式猿在上面擴充套件功能的,實際就在昨天,我連SpringMVC框架都不會搭。

     之所以寫這篇文章是因為網上的框架搭建教程參差不齊,讓我走了很多彎路,現在我係統的總結一下,幫助那些和我一樣正在努力走上“code mokey”人生的同道中人,順便給自己留作參考備份(有不當的地方歡迎批評指正)。下面開始正題:

    1、準備好搭建環境;

           我使用的是:

          Jdk:1.6.0_43;

          Tomcat:apache-tomcat-6.0.36-windows-x86.zip;

          Eclipse:4.2.0;

          Spring:3.2.4;

2、準備好spring的jar包及spring mvc的依賴包;

        由於我是初學者,為了方便以及降低難度,我匯入了所有spring的jar包和commons-logging-1.1.1.jar,jstl-1.2.jar,standard.jar,commons-fileupload-1.2.jar;

3、建立一個Dynamic web project,這裡我把它命名為 SpringMVCDemo(命名純屬自己喜好,我之所以寫出來,是為了本次教程),在WEB-INF/lib中匯入上面所有包;

4、配置配置檔案(以下程式碼均可直接複製);

      在這裡我想說一下,我們學會搭建框架並不是按部就班,學著別人搭好就完事了,我們至少要了解一下它的工作流程,才能更好的使用它,關於springMVC的工作流程網上一搜一大堆,我這裡推薦一個地址 http://www.blogjava.net/bolo/archive/2011/06/01/351028.html;他講的比較清晰還有配圖。

5、配置 web.xml;

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>spring3_test</display-name>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
5、配置 spring-servlet.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" xmlns:mvc="http://www.springframework.org/schema/mvc" 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-3.0.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
    ">  
    <!-- 預設掃描的包路徑 -->  
    <!-- Spring MVC啟動時會掃描以下包下的所有檔案, DefaultAnnotationHandlerMapping這個類將REST URL解析為請求對映,
    	  它在啟動時,對Controller中所有標註了@RequestMapping註解的方法,都放到了一個HandlerMapping物件中,當有請求時,
    	  就在這個物件中進行查詢是否有與之匹配路徑的處理方法,有則執行,沒有就會輸出一個Not Page Found警告資訊-->  
    <context:component-scan base-package="cn.controller" />  
    <!-- 添加註解驅動 -->  
    <mvc:annotation-driven />  
    <!-- 定義跳轉的檔案的前後綴 -->  
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/jsp/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
</beans>

6、寫一個對應的controller;
package cn.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    @RequestMapping(value = "/hello.html")
    public String helloWord(Model model) {
        String message = "Hello World, Spring 3.0!";
        model.addAttribute("message", message);
        return "/hello";
    }
}

7、請求預設首頁  index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="/SpringMVCDemo/hello.html">click to...</a>
</body>
</html>

8、返回的檢視頁  hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Hello World</title>  
</head>  
<body>  
${message}  
</body>  
</html>  

9、開啟瀏覽器 輸入 http://localhost:8080/SpringMVCDemo/ 

10、如果沒有自己配置成功可以參考本demo原始碼,下載地址:http://download.csdn.net/detail/thelastperfect/7102707

11、附張本次專案結構圖,大家參考下: