Spring mvc學習總結

2021-07-22 07:55:23 字數 3488 閱讀 6669

其實框架並沒有想象中的複雜。尤其對於初學者,總覺得ssh是一些很複雜的東西似的。其實對初學者來說能夠用這些框架就足夠了。在公司裡也是,基本功能會用了就可以了。管他框架有多高深。尤其是spring mvc 用起來比struts2簡單多了。不用多少配置檔案。幾個註解就搞定了。

首先,大家只要理解了mvc。其實所有的mvc 框架都是大同小異的。

無非是使用者頁面通過httpservletrequest向後台傳值。框架的配置檔案會通過request中的url格式和引數找到相對應的action(spring mvc中叫controller)。action執行完成後或者返回乙個新的頁面或者只返回一些資料。可以放在request中或者session中在頁面中取得。然後頁面繼續其他功能。(個人理解!)

先看一下spring mvc 的處理流程:

5.dispatchservlet詢問視**析器,查詢相應檢視。

6.由某具體檢視為使用者顯示頁面。

還是很容易理解的吧。就開始試試吧。

首先在web.xml中配置上dispatchservlet(spring 的前端控制器)

新增上spring-dispatcher

org.springframework.web.servlet.dispatcherservlet

contextconfiglocation

/web-inf/config/spring/spring-dispather.xml

1配置好這個就在相應的目錄下建立spring的配置檔案。先來個spring 配置檔案的片段吧。對應著說:

p:prefix="/web-inf/jsp/" p:suffix=".jsp" />

50010000

1000

true

180true

上面都寫了注釋,相信能看到這篇文章的人都能看懂吧,不多解釋。以上都是常用到的配置,其他的配置我還沒碰到,

不多說。說多了也掌握不了。學東西還是在專案上學得快。

配置好之後就是spring mvc的框架下開發了。

之所以認為spring mvc開發比struts2簡單很多就是因為注釋。 你看spring檔案中就沒有對應controller的配置。

不像struts2每個action都要配置上來,雖然用萬用字元也簡單不少。不過這個完全不寫,通過注釋搞定就行了。舉個例子:

這段**的意思就不用我解釋了吧。

直接看注釋,@controller 這個注釋就是表明此類是個controller類(對應於struts2的action類),

有了此注釋就不用繼承基本controller類了。

我只說用在方法上面(我覺得用在類上面複雜)。 看到裡面有個value引數了吧。

這個引數的值就是匹配的request中url的值,也就是訪問這個方法的話在url後面寫login/dologin這個就找到這個方法了。

這個對應比struts2中寫個action方法都去配置檔案中寫個配置簡單吧。

@responsebody 這個注釋是指不反回檢視了只返回資料。 

springmvc中controller的預設返回值型別是modelandview就是檢視和資料。

別問我為什麼資料用model來存,model是什麼?我也不懂,跟著用就行了。

就我理解我認為model就是個jsp中用來頁面間傳值的request。**中有句model.addattribute("username",username);

就是把username的值存在名字叫做」username「的屬性中。然後在返回的頁面中就可以通過$來取得username的值。

@sessionattributes 這個注釋放在類的上面。看了上面model.addattribute("username",username);就好理解了。

model.addattribute("username",username);是將屬性」username「放在request中。

如果在類上面加了@sessionattributes()那麼」username「這個屬性就會加到session中隨時來取。

@requestparam(value = "username",defaultvalue ="***") 這個注釋,是指頁面訪問此方法的時候url後面加的引數在這接收。

例如url 是 ……login/dologin?username="aaa 就是想後台傳了個username引數。那麼可以通過此注釋來接收引數。

還有這段**中沒用到的注釋:

@service("businessservice") 

對於這個注釋我認為就是向spring配置檔案中注釋.這個注釋放在類的上面。

例如放在businessserviceimpl 的上面那麼就相當於在配置檔案中配置了

@resource(name = "businessservice") 這個注釋就是注入的意思。

上面注釋相當於配置了bean那麼這個注釋就是取得那個bean的意思。用法為 在注釋下面宣告乙個此物件就相當於new 了這物件了,

就可以拿來用了。例如:

@resource(name = "businessservice")

businessservice businessservice;

(businessservice是businessserviceimpl 實現的介面,應該能想到。)這樣就可以直接拿businessservice這個物件來用了。

注釋就說這麼幾個吧。其他的我用的還不多。

然後說下spring mvc的controller方法預設返回 的modelandview型別是怎麼回事。 這個類應該是spring mvc中特有的。

一般如果需要返回頁面的話 就用這個返回類。 這個類物件的生成方法是:modelandview mv = new modelandview("login/success");

其中的引數是個jsp頁面。可能你要問這為什麼是個jsp頁面,看上面的spring配置檔案中有個配置是:

看到了嗎。他會自動把檢視的前字尾加上。這個頁面就是"/web-inf/jsp/login/success.jsp"。這樣的話就會返回success.jsp這個頁面,

model上面說了就是向頁面傳值。作用域和request一樣。把他當做request就行了。取值方式都一樣。$。

如果是傳大量資料的話 一般也不用這個傳。比如用list返回一系列資料的話。這樣的話 返回值就不是modelandview型別了。

就不能同時返回檢視。所以用@responsebody 注釋。來指明只返回資料部返回檢視。

想學習的話 可以找點demo試試。看是不是比struts簡單多了。就寫這點吧。其他的還沒怎麼了解。

至尊新手 純手寫,有什麼問題歡迎指正。 頂

SpringMVC學習總結(5)

httpservletresponse物件 httpsession物件 model modelmap物件 public string edititems model model,integer id throws exception 4.1 普通pojo型別 需要實現converter介面,這裡是將...

Spring MVC框架學習總結

開發工具與關鍵技術 visual studio什麼是mvc spring mvc是spring框架的乙個模組,spring mvc和spring無需通過中間整合層進行整合。spring mvc是乙個基於mvc的web框架。那什麼是 mvc 呢?mvc模式 model view controller ...

springMVC搭建總結

今天第一次搭建整合了hibernate的springmvc框架,於是參考了以前的spring3 hibernate3的搭建方法。但是我使用的是spring4 hibernate4。然後就雪崩了.classpath expc.properties org.hibernate.dialect.mysql...