對Spring MVC初學的認識

2021-06-27 03:30:35 字數 3309 閱讀 5724

在經過對ssh框架的學習,想必大家也對這樣的框架有了乙個新的認識,但回頭想一想,無論我們做多大或者是多小的專案的時候,前面的操作是不是麻煩而繁瑣,但是有必須每一步都不能少,是吧,呵呵

那遇到這樣的問題我們的前輩是怎麼樣去解決的呢,其實就是今天的主題了 -- spring mvc

那這樣的乙個東西到底是什麼呢? 我們先姑且這樣叫吧,呵呵,希望大家不要介意,相信大家學習完之後,對它會有全新的認識,而這種認識,我希望是發自每個人內心對它最真實的理解,好了,廢話不多說,開始吧!

首先是要一定說明的是,這倒是說明是什麼?對吧

spring mvc 是springframework的後續產品,並且已經融入到spring web flow中

同時spring mvc 分離了控制器,模型物件,分派器(其實我不知道這是什麼)以及處理程式物件的角色,這種分離讓它們更容易進行定製.

說了這些很官方的話,我都有點暈了,呵呵,先上乙個原理流程圖吧,相信會比較直觀!

spring mvc 原理圖

對應原理流程步驟:

1.web客戶端 --> dispatcherservlet  使用者傳送乙個請求到,首先到dispatcherservlet中(先交給前端控制器,進行全域性的流程控制)

3.dispatcherservlet --> controller 進入指定的controller物件,執行裡面的方法,返回需要的字串(modelandview),在controller裡面需要對bean進行操作,也就是會和model進行互動

4.dispatcherservlet --> viewresolver 解析從controller中返回的字串,並轉換為有效的jsp路徑

5.dispatcherservlet --> jsp 將轉換好的jsp路徑,指定到特定的頁面

6.jsp --> web客戶端 將某乙個特定的頁面顯示在客戶端介面

好了,以上就是spring mvc的流程,是不是有了一定的認識了,不急,後面還有呢...

有了基本的認識, 那就開始編碼吧!(我是用的是springframework-3.2.8)

大家都知道的,開啟編譯器,準備開始開發乙個專案的時候,第一步就是新建專案。哈哈!

是不是會有一點無語,呵呵,不是別的,只是活躍一下氣氛,原因***。。

好吧,這一步就不列入編碼步驟裡了吧,下面正式開始!

第一步:新增架包

是不是覺得架包很少啊,沒錯,這就是spring mvc的特點,繼續讓它顛覆你的想法吧

第二步:一定是web.xml檔案了

這裡就是上面提到的dispatcherservlet -- 前端控制器

後面的"*.do"就是用來攔截頁面使用者的請求,這裡規定凡是以 .do 結尾的請求都會命中,當然這個可以自己定義,需要說明的是,不管自己定義的是什麼,一定要遵守,呵呵,是不是突然覺得好有道理!

第三步:在web-inf中配置 mvc-servlet.xml檔案(要求名稱必須以web.xml中的節點中的名字開頭+servlet.xml)算了,直接上圖吧:

<

?xml version="1.0" encoding="utf-8"?>

xmlns:xsi="" xmlns:p=""

xmlns:context=""

xmlns:mvc=""

xsi:schemalocation="

/spring-beans-3.2.xsd

/spring-context-3.2.xsd

/spring-mvc-3.2.xsd

">

user

需要解釋:如果某乙個controller中需要呼叫不用的方法時,就必須指定定義方法的名字,例如請求的路徑為:

user.do?action=userlogin

(1).需要指定定義方法的名字:

定義之後,程式就知道在action之後的就是需要進入的某乙個方法

(如果是呼叫同乙個方法,當然就不需要定義這個,但是只要有乙個controller需要不同的方法,就需要定義)

(2).解析之後controller路徑,這裡用到了spring的控制反轉(ioc),其他就不同多說

給controller定義方法名解析器

2.1. 可以應用已經定義好的解析器(見上)

2.2. 可以為每乙個bean單獨定**析器

(3).解析所有來自頁面中命中的請求,並分配到不同的controller中

(4).在配置檔案中,如果使用最後乙個bean裡面的內容,如果需要返回到"index.jsp"頁面時,就可以直接返回"index"就ok了,這個配置檔案就是為我們返回的字串,前後自動加上"/"和".jsp".

一旦有了這個配置之後,就不能在controller中進行對controller的跳轉,因為它會所有的返回字串前後都加上"/"和".jsp",而這明顯不是我們所需要的,所以一般不會使用這種方法!

到這裡了,需要靜一靜,好好理一下思路.

第四步:定義乙個usercontroller,並繼承multiactioncontroller類

public class usercontroller extends multiactioncontroller else

return new modelandview(result);

}}

(1).上面的**中繼承的是 multiactioncontroller類,意味著可以用來定義多個不同的方法,以請求中action後面的名字來定

當然還可以直接完成controller介面,意味著當前整個controller 中,只有乙個方法,且必須給定

(2).在方法中的引數預設情況下是兩個,分別是httpservletrequset和httpservletresponse物件,當然在此之外,還可以定義乙個物件型別的引數,主要是簡化表單提交多個引數(目前只了解到這裡)

寫到這裡,就差不多了,不出意外的話,你應該可以完成乙個比較簡單的spring mvc框架的小專案了

最後,謝謝你的信賴,看完了整篇內容,如遇到有問題的地方,望反饋給我,也希望共同進步!

拜拜~~~

對「認識」的認識

很早就想談談關於 認識 的認識。這是乙個巨集大深刻的哲學問題。只是覺得沒有完全思考清楚,還以為觀點有些偏頗,擔心自己沒能力系統論述,就遲遲沒有動筆。但想到談論的問題本身就是乙個偏頗的問題,而且,我始終覺得,問題儘管偏頗,但卻不無道理。所以,提筆寫下這篇文字。正像思想的本質是不安一樣,認識的本質是片面...

springMVC初學文件

根據上面的class後面的路勁建立相應的controller 一定要繼承abstractcontroller 複習下,servlet是繼承httpservlet,struts2,action是繼承actionsupport 重寫 這個方法相當於action裡面要呼叫的方法,返回乙個modelandv...

初學SpringMVC之 SpringMVC註解

controller controller 在類定義處新增,將該類交個 ioc 容器來管理 結合 springmvc.xml 的 動掃瞄配置使 同時使其成為 個控制器,可以接收客戶端請求 如 controller hello public class hellohandler 需要瀏覽器訪問loca...