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;
5、配置 spring-servlet.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>
<?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、附張本次專案結構圖,大家參考下: