Spring Web MVC 簡稱(Spring MVC),是一個Spring提供給web應用的一個架構設計
1.MVC是什麼?
MVC架構是一種理念,被廣泛應用到各類語言和開發中。
M-MODEL(模型層)
V-VIEW(視圖層)
C-COntroller(控制層-或者叫控制器)
2.MVC有什麼作用?
MVC可以解耦各個子產品
3.Spring MVC 的各個子產品扮演什麼樣的角色?
Servlet扮演控制器(Controller)
Java Bean 是一個專門操作資料庫元件的模型層(MODEL)
JSP主要是展示給使用者看的,扮演一個視圖的角色(VIEW)
4.Spring MVC的核心是什麼?
Spring MVC的核心在于其流程,這是使用Spring MVC架構的基礎,Spring MVC是一種基于Servlet的技術,
它提供了核心控制器(DispatcherServlet)和相關的元件
并制定了松散的結構,以适合各種場景的需求。
DispatcherServlet:叫做核心控制器,
Spring C 層架構的核心是 DispatcherServlet,它的作用是将請求分發給不同的後端處理器,也即 使用了一種被稱為Front Controller 的模式
Spring 的C 層架構使用了後端控制器來、映射處理器和視圖解析器來共同完成C 層架構的主要工作。
spring 的C 層架構還真正地把業務層處理的資料結果和相應的視圖拼成一個對象,即我們後面會經常用到的ModelAndView 對象
了一種被稱為Front Controller 的模式
Dispatcher:排程者,排程員,排程程式
servlet的作用:攔截HTTP頁面發送過來的請求
5.控制層(control)的作用是什麼?
封裝web 請求為一個資料對象、
調用業務邏輯層來處理資料對象、
傳回處理資料結果及相應的視圖給使用者
下面是一個簡單的執行個體
1.建立一個web project 不是java project(spring MVC是在web項目應用的,不是java項目)
注意:建立的時候将web.xml選中
2.添加spring mvc的支援
3.配置web.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 id="WebApp_ID"version="3.0">
7 my_web_spring
8
9
10 index.jsp
11
12
13
14 org.springframework.web.context.ContextLoaderListener
15
16
17
18 contextConfigLocation
19 classpath:applicationContext.xml
20
21
22
23
24
25 spmvc
26 org.springframework.web.servlet.DispatcherServlet
27
28 1
29
30
31
32 spmvc
33
34 *.do
35
36
在上面我們配置了DispatcherServlet
DispatcherServlet 說白了其實就是一個Servlet ,它是對請求進行轉發的核心Servlet 。
在這裡即所有.do 的請求将首先被DispatcherServlet 處理,
而DispatcherServlet 它要作的工作就是對請求進行分發(也就是說把請求轉發給具體的Controller )。
可以簡單地認為,它就是一個總控處理器,但事實上它除了具備總控處理理器對請求進行分發的能力外,還與spring 的IOC 容器完全內建在一起,進而可以
更好地使用spring 的其它功能。在這裡還需留意 < servlet-name > spmvc servlet-name > ,下面
4.建立 spmvc-servlet.xml 檔案,它的命名規則: servlet-name-servlet.xml 。
1 <?xml version="1.0" encoding="UTF-8"?>
2
3
4
5
6 class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
7
8
9 MyControl
10
11
12
13
14
15
16
17
5.編寫com.test.MyController.java檔案
packagecom.pojo;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;public class MyController implementsController{
@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throwsException {//TODO Auto-generated method stub
ModelAndView mv = new ModelAndView("index.jsp");
mv.addObject("message", "喂喂喂,是我");returnmv;
}
}
6.編寫index.jsp檔案
1
2
6
7
8
9
10 ">
11
12
My JSP 'index.jsp' starting page
13
14
15
16
17
18
21
22
23
24 This is my JSP page.
25 ${message}26
27
7.啟動伺服器
因為在web.xml中設定了歡迎頁,是以通路項目時直接通路的是index.jsp
在位址欄中輸入my.do
8.備注
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 id="WebApp_ID"version="3.0">
7 my_web_spring
8
9
10 index.jsp
11
12
13
14 org.springframework.web.context.ContextLoaderListener
15
16
17
18 contextConfigLocation
19 classpath:applicationContext.xml
20
21
22
23
24
25 spmvc
26 org.springframework.web.servlet.DispatcherServlet
27
28 1
29
30
31
32 spmvc
33
34 *.do
35
36
如果亂碼,需要設定字元編碼