日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC小结

發(fā)布時(shí)間:2024/8/26 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC小结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一放下就生疏,所以要溫故,所以要筆記。

?

Tip,多數(shù)情況下,SpringMVC建議單例執(zhí)行,Struts2建議多例執(zhí)行。

原因就在于Struts2使用屬性驅(qū)動或模型驅(qū)動,而SpringMVC則使用方法的形參接收參數(shù)。后者的方法在調(diào)用后數(shù)據(jù)就會銷毀。

?

前提一,SpringMVC的執(zhí)行流程:DispatcherServlet - HandlerMapping - HandlerAdapter - ViewResolver。

其實(shí)就是解析Url,調(diào)用合適的Handler,處理Handler的返回?cái)?shù)據(jù)(ModelAndView,查源碼可知其本質(zhì)仍是操作request和response)。

注意,SpringMVC的Handler又叫Controller,概念可類比Struts2的Action。

前提二,SpringMVC的使用有傳統(tǒng)代碼注解兩種方式。兩種方式需要在xml中配置的HandlerMapping和HandlerAdapter是不同的。

前提三,SpringMVC可以開啟RESTful風(fēng)格訪問。

前提四,xml配置文件中的標(biāo)簽都有對應(yīng)的類或接口,所以如果不知道怎么配置,可以查找對應(yīng)的類或接口。

?

Handler(Controller)的實(shí)現(xiàn)方式:

①(非注解)實(shí)現(xiàn)Controller接口;

②(非注解)實(shí)現(xiàn)HttpRequestHandler接口;

③(注解)@Controller@RequestMapping@RequestParam@PathVariable等。

非注解方式需要實(shí)現(xiàn)接口的方法,每次實(shí)現(xiàn)都只能對應(yīng)一個(gè)Controller,不方便,僅作了解即可。

注解方式,靈活多變(方法有多種返回類型,方法返回的數(shù)據(jù)有多種操作方式),當(dāng)是最佳選擇。

?

Handler(Controller)中方法的形參類似Struts2中Action的屬性或模型,通過不同的形參可以注入不同的對象(如request,pojo等)。

如:

@RequestMapping(value = "/xxx", method = { RequestMethod.POST, RequestMethod.GET }) public String xxx(HttpServletRequest request) throws Exception {request.setAttribute("xxx", xxx);return "abc/xxx";// return "redirect:xxx.action"; //路徑是相對于當(dāng)前方法路徑的上一級路徑。// return "forward:xxx.action"; //路徑是相對于當(dāng)前方法路徑的上一級路徑。// 其實(shí)就是類內(nèi)的action。 }

上面就是通過形參注入了request對象,從而可以在方法內(nèi)部操作該對象。

?

?

---------------------------------------------------------------------

SpringMVC已加入了RESTful支持。RESTful是面向資源的架構(gòu)思想,個(gè)人理解:對資源的訪問及處理是其重點(diǎn)。

SpringMVC通過以下三點(diǎn)來保證(個(gè)人理解):

??? 【】【】@ResponseBody使Controller【直接返回?cái)?shù)據(jù)】,而不是直接指向具體的視圖;同時(shí)通過MessageConverter和produces="text/plain;charset=UTF-8"可以返回各種格式的數(shù)據(jù)(XML,json,RSS,TEXT,字節(jié)流等)。
?? ?【】【】@ResponseBody就是對應(yīng)了HTTP協(xié)議里的響應(yīng)體!!!
?? ?【】【】ResponseEntity可以認(rèn)為是ResponseHeader+ResponseBody。
?? ?
?? ?以上三點(diǎn)(直接返回?cái)?shù)據(jù)而非頁面、對應(yīng)響應(yīng)體、響應(yīng)頭和響應(yīng)體),都是針對RESTful風(fēng)格所需。務(wù)必理解啊。

??? Controller方法直接返回ResponseEntity對象,@ResponseBody將該對象轉(zhuǎn)成符合格式的數(shù)據(jù),然后直接返回。

?

轉(zhuǎn)載于:https://www.cnblogs.com/larryzeal/p/5336042.html

總結(jié)

以上是生活随笔為你收集整理的SpringMVC小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。