本文屬於SpringMVC的入門篇,屬於基礎知識,僅供學習分享使用,如有不足之處,還請指正。 ...
本文屬於SpringMVC的入門篇,屬於基礎知識,僅供學習分享使用,如有不足之處,還請指正。
什麼是SpringMVC ?
SpringMVC是一個基於Spring的MVC框架,繼承了Spring的優秀特點,目前是使用率最高的Java EE Web MVC框架。
SpringMVC優勢有哪些?
- SpringMVC運行速度會比Struts快一些(SpringMVC是單例模式,線程不安全,所以不要使用成員變數,Struts是多線程的方式,線程間是安全的)
- SpringMVC更加簡潔,開發效率更高;層次清晰,便於閱讀
SpringMVC體繫結構
如下圖所示:
SpringMVC環境搭建
1. 新建一個Web工程【Dynamic Web Project】
File-->New-->Dynamic Web Project,按照步驟執行即可。如下圖所示:
2. 導入SpringMVC需要的Jar(Java Archive)包
需要導入的Jar包共8個,分為三個部分,如下所示:
//日誌包 commons-logging-1.1.1.jar //spring核心包 spring-aop-4.0.6.RELEASE.jar spring-beans-4.0.6.RELEASE.jar spring-context-4.0.6.RELEASE.jar spring-core-4.0.6.RELEASE.jar spring-expression-4.0.6.RELEASE.jar //WebMVC包 spring-web-4.0.6.RELEASE.jar spring-webmvc-4.0.6.RELEASE.jar
3. 配置web.xml
主要是配置核心控制器,如下圖所示:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app 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_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <!-- SpringMVC是使用Servlet來做控制器的,預設在/WEB-INF/[servlet-name]-servlet.xml這個路徑,如:dispatcher-servlet.xml --> 4 <!-- 為什麼用的時候才報錯?Tomcat啟動的時候不報錯? 5 Sturts只要配置報錯了,啟動的時候就會報錯,SpringMVC是在第一次訪問的時候才創建Servlet 6 --> 7 <servlet> 8 <servlet-name>dispatcher</servlet-name> 9 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 10 <!-- 以下語句配置,在tomcat啟動時,啟動核心控制器 --> 11 <load-on-startup>1</load-on-startup> 12 <!-- /WEB-INF/dispater-servlet.xml --> 13 </servlet> 14 <servlet-mapping> 15 <servlet-name>dispatcher</servlet-name> 16 <!-- 請求入口 --> 17 <url-pattern>/</url-pattern> 18 </servlet-mapping> 19 20 <display-name>FirstSpringMvc</display-name> 21 <welcome-file-list> 22 <welcome-file>index.html</welcome-file> 23 <welcome-file>index.htm</welcome-file> 24 <welcome-file>index.jsp</welcome-file> 25 <welcome-file>default.html</welcome-file> 26 <welcome-file>default.htm</welcome-file> 27 <welcome-file>default.jsp</welcome-file> 28 </welcome-file-list> 29 </web-app>
4. 新建一個類實現Cotroller介面
一個Controller只有一個handleRequest方法需要實現,用來處理頁面的請求
1 package com.hex.springmvc; 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 /** 10 * 實現Controller介面 11 * @author Administrator 12 * 13 */ 14 public class HelloWorldController implements Controller { 15 16 @Override 17 public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { 18 ModelAndView mav=new ModelAndView(); 19 mav.addObject("msg", "Hello World,你好,SpringMVC"); 20 mav.setViewName("WEB-INF/jsp/HelloWorld.jsp"); 21 System.out.println("控制器被執行了!!!"); 22 return mav; 23 } 24 25 }
5. 新增Controller配置文件
SpringMVC有一個預設的配置文件,預設在/WEB-INF/[servlet-name]-servlet.xml這個路徑,如:dispatcher-servlet.xml。
一個bean就表示一個Controller,用id屬性來唯一表示。如下所示:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 <bean id="/HelloWorld" class="com.hex.springmvc.HelloWorldController"></bean> 7 </beans>
6. 新增JSP(Java Server Pages)頁面
${msg}表示接收Controller傳遞過來的參數內容,如下所示:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>SpringMVC歡迎你</title> 8 </head> 9 <body> 10 <h1>歡迎信息</h1> 11 <h1>${msg}</h1> 12 </body> 13 </html>
7. 訪問
啟動Tomact,打開瀏覽器,輸入網址http://localhost:8080/FirstSpringMvc/HelloWorld,如下所示,則表示成功
8. 文件結構
整個文件結構,如下圖所示:
SpringMVC對靜態資源的支持
在配置核心控制器時<url-pattern>/</url-pattern>,會導致SpringMVC框架下,靜態資源無法訪問(css,js,img),則需要配置對靜態資源的支持,如下所示:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/mvc 8 http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 9 <!-- 靜態資源的支持 --> 10 <mvc:default-servlet-handler/> 11 <bean id="/HelloWorld" class="com.hex.springmvc.HelloWorldController"></bean> 12 </beans>
配置過後,圖片就可以訪問了,如下所示:
備註
如山間清爽的風,如古城溫暖的光