Spring MVC介紹和第一個例子
1.Spring mvc概述
spring mvc是spring提供給web應用框架設計,實際上MVC框架是一個設計理念。它不僅存在java世界中而且廣泛在於各類語言和開發中,包括web的前端應用。對於spring mvc而言,他的流程和各個組件的應用和改造是springmvc的根本。
1.2 springmvc都做了什麼
- Controller為中心完成對系統流程的控制管理
- 從請求中搜集數據
- 對傳入的參數進行驗證
- 將結果返回給視圖
- 針對不同的視圖提供不同的解決方案
- 針對jsp視圖技術提供標籤庫
- 攔截器
- 上傳文件
1.3 spring-mvc結構
1 DispatcherServlet:中央控制器,把請求給轉發到具體的控制類
2 Controller:具體處理請求的控制器(配置文件方式需要配置,註解方式不用配置)
3 handlerMapping:映射處理器,負責映射中央處理器轉發給controller時的映射策略
4 ModelAndView:服務層返回的數據和視圖層的封裝類(無論是配置文件還是註解都不需要配置)
5 ViewResolver & View:視圖解析器,解析具體的視圖
6 Interceptors :攔截器,負責攔截我們定義的請求然後做處理工作(無論是配置文件方式還是註解都需要先創建再配置)
紅色的是需要自己創建,黑色的需要配置。
![]()
1.4 mvc模式
1.5spring-mvc流程
2.spring-mvc的第一個例子
1. 創建一個web工程
2. 導入依賴包
3.創建springmvc的配置文件 (web.xml)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="//www.w3.org/2001/XMLSchema-instance" xmlns="//java.sun.com/xml/ns/javaee" xsi:schemaLocation="//java.sun.com/xml/ns/javaee //java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>springMvcDome</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 配置springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
4.配置spring mvc核心配置文件
文件的命名規則:中央控制器(servlet的名稱)的名稱+「-servlet.xml」
默認位置:WEB-INF下
配置:controller和視圖解析器
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="//www.springframework.org/schema/beans" 3 xmlns:xsi="//www.w3.org/2001/XMLSchema-instance" xmlns:mvc="//www.springframework.org/schema/mvc" 4 xmlns:context="//www.springframework.org/schema/context" 5 xmlns:aop="//www.springframework.org/schema/aop" xmlns:tx="//www.springframework.org/schema/tx" 6 xsi:schemaLocation="//www.springframework.org/schema/beans 7 //www.springframework.org/schema/beans/spring-beans-4.3.xsd 8 //www.springframework.org/schema/mvc 9 //www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 10 //www.springframework.org/schema/context 11 //www.springframework.org/schema/context/spring-context-4.3.xsd 12 //www.springframework.org/schema/aop 13 //www.springframework.org/schema/aop/spring-aop-4.3.xsd 14 //www.springframework.org/schema/tx 15 //www.springframework.org/schema/tx/spring-tx-4.3.xsd "> 16 17 <!-- 配置controller 默認使用BeanNameurlHandelMapping 根據hello.do來找到controller--> 18 <bean id="myController" name="/hello.do" class="com.springmvc.mycontroller.MyController"></bean> 19 <!-- 配置視圖解析器 --> 20 <bean 21 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 22 <!-- 配置前綴 --> 23 <property name="prefix" value="/WEB-INF/jsp/"></property> 24 <!-- 配置後綴 --> 25 <property name="suffix" value=".jsp"></property> 26 </bean> 27 </beans>
5.創建controller
package com.springmvc.mycontroller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; /** * spring mvc第一個例子 * @author Administrator * */ public class MyController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("hello springmvc"); return new ModelAndView("index"); } }
6.測試成功
![]()
1.4 mvc模式
Request response