Spring MVC入門

今天開始我們對Spring MVC框架的入門介紹,如果說是基礎入門我們會先給大家介紹如下幾個技術內容

  • 理解Spring MVC工作流程
  • 快速搭建Spring MVC
  • 詳細介紹@RequestMapping的用法
  • Spring MVC如何發送JSON數據
  • 如何整合Spring和Spring MVC

上面內容我個人認為是基礎性入門介紹,所以我們會分幾講內容來進行

1. Spring MVC工作原理

  • Spring MVC框架圍繞DispatcherServlet這個核心控制器來開展工作
  • DispatcherServlet它負責攔截請求並將其分配給相應的處理器
  • 整個Spring MVC的工作流程如下
    • 客戶端發送HTTP請求,Web服務器接收請求並查找配置在web.xml中的DispatcherServlet
    • DispatcherServlet接收請求後,將根據請求的信息以及HandlerMapping的配置找到處理請求的處理器
    • DispatcherServlet根據HandlerMapping得到對應當前請求的Handler後,通過HandlerAdapter對Handler進行封裝
    • 處理器完成業務邏輯處理後返回一個ModelAndView給DispatcherServlet,ModelAndView包含視圖邏輯名和模型數據信息
    • DispatcherServlet藉由ViewResolver完成邏輯視圖名到真實視圖對象的解析工作
    • 得到真實的視圖View對象,DispatcherServlet就使用這個View對象對ModelAndView中的模型數據進行視圖渲染


Spring MVC入門


2. 快速搭建SpringMVC開發環境

  • 導入SpringMVC相關的jar包


Spring MVC入門


  • 在web.xml文件中配置SpringMVC的核心控制器,DispatcherServlet
<code>
<web-app>
<display-name>springmvc/<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>

<servlet>
<servlet-name>spmvc/<servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet/<servlet-class>
<init-param>
<param-name>contextConfigLocation/<param-name>
<param-value>classpath:com/zlt/spmvc/config/springmvc-web.xml/<param-value>
/<init-param>
<load-on-startup>1/<load-on-startup>
/<servlet>

<servlet-mapping>
<servlet-name>spmvc/<servlet-name>
<url-pattern>*.do/<url-pattern>
/<servlet-mapping>
/<web-app>/<code>

注意上述代碼有幾個關鍵點:

(1)DispatcherServlet雖然是SpringMVC框架中核心控制器,但是它在web.xml還是需要<servlet...>來進行配置

(2)DispatcherServlet需要在web容器啟動的時候加載基於SpringMVC的配置文件所以這裡還需添加<init-param>來指出SpringMVC配置文件的路徑/<init-param>

  • 創建一個SpringMVC的配置文件,此配置文件主要添加SpringMVC框架所持有的功能。如:視圖解析,攔截器,模型驅動等相關功能。單從這一節內容我們只配置一個解析JSP的視圖解析器InternalResourceViewResolver


<code>
<beans> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="Index of /schema/context"
xsi:schemaLocation="Index of /schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
Index of /schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

<component-scan>

<bean> p:prefix="/" p:suffix=".jsp">/<bean>

/<beans>/<code>
  • 最後創建控制器來測試SpringMVC框架是否可以運行
<code>package com.zlt.spmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.zlt.spmvc.entity.Student;

/**
* SpringMVC的控制器(業務控制器)
* 定義的方法就是一個請求處理的方法
* @author caleb
*
*/
@Controller
public class TestController {

/**
* @RequestMapping主要是定義用戶的url請求
* @RequestMapping("/m01"), http://localhost:8080/springmvc/m01.do
* 返回指就是一個邏輯視圖名, 它遵循springmvc-web.xml視圖解析器去尋找物理視圖名(m01.jsp)
* @return
*/
@RequestMapping("/m01")
public String m01() {
return "m01";
}

}/<code>


本文原創:知了堂Java培訓講師-子墨,歡迎轉載,請務必註明出處
原文鏈接:Spring MVC入門


Spring MVC入門



分享到:


相關文章: