- N +

springmvc的處理流程,spring的工作流程

大家好,關于springmvc的處理流程很多朋友都還不太明白,不過沒關系,因為今天小編就來為大家分享關于spring的工作流程的知識點,相信應該可以解決大家的一些困惑和問題,如果碰巧可以解決您的問題,還望關注下本站哦,希望對各位有所幫助!

springmvc事務處理注解方式

tx這樣的annotatiom方式更簡單不需要再去寫代碼創建鏈接等

springmvc怎么處理返回值

以下是SpringMvc原生支持的返回類型,如果返回Json,可以用JsonString或者Map,

ModelAndView

Model

ModelMap

Map

View

String

Void

還可以返回類,操作步驟見下面介紹。

需要注意的是,SpringMvc與Jackson結合使用時,如果返回的是一個 Object、或者返回的Map中是Object型的,就需要對Object中的成員變量加注解,否則會報 錯:org.springframework.web.HttpMediaTypeNotAcceptableException:Couldnot findacceptablerepresentation,500codeerror。

原因是Jackson默認情況下不知道怎么去序列化,方法有:

1.為成員變量增加getter、setter方法

2.或者也可以給field加上@JsonProperty注解,(也可在getter上加),還能用它指定序列化時的屬性名

@JsonProperty可以標注在field或者getter上,

Definesnameofthelogicalproperty,i.e. Jsonobjectfieldnametouseforthe property(i.e.@JsonProperty("GID")):ifemptyString(whichisthe default),willusenameofthefieldthatisannotated.

代碼示例:

classItemContent{ privateintgid; privateintsid; privateDatecreateTime; privateStringgname; privateStringname; privateStringnologinUrl; @JsonProperty intgetGid(){ returngid; } voidsetGid(intgid){ this.gid=gid; } @JsonProperty intgetSid(){ returnsid; } ............................. @RequestMapping(value="/dissert/getServerList.do") @ResponseBody publicObjectgetServerList(HttpServletRequestrequest){ Map<String,Object>resultMap=newHashMap<String,Object>(); .................................. List<ItemContent>tempList=newArrayList<ItemContent>(); for(GameServergameServer:listServers){ ...................... ItemContentitem=newItemContent(); item.setGid(gameServer.getGid()); item.setGname(gameServer.getGname()); item.setSid(gameServer.getSid()); item.setName(gameServer.getName()); item.setCreateTime(gameServer.getCreateTime()); } tempList.add(item); } } resultMap.put("open",tempList); returnresultMap; }

springmvc重要組件

SpringMVC重要的五大組件:

DispatcherServlet、HandleMapping、Controller、ModeAndView、ViewResolver。

1.DispatcherServlet

這個控件是SpringMVC最核心的一個控件,顧名思義其實他就是一個Servlet,是Spring寫好的一個Servlet

2.HandleMapping

控件標明了路徑與Controller的對應關系,不同的路徑訪問不同的Controller

3.Controller

用來處理業務邏輯的Java類

4.ModeAndView

Mode用來綁定處理后所得的數據,View視圖名

5.ViewResolver

視圖解析器明確了視圖名與視圖對象的關系,是調用demo.jsp還是調用demo.html,以及明確視圖的位置

spring mvc原理詳解

SpringMVC運行原理

1.客戶端請求提交到DispatcherServlet

2.由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller

3.DispatcherServlet將請求提交到Controller

4.Controller調用業務邏輯處理后,返回ModelAndView

5.DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖

6.視圖負責將結果顯示到客戶端

springmvc的工作流程是什么

spring工作的流程

流程如下:

1、用戶發起請求到前端控制器(DispatcherServlet),該控制器會過濾出哪些請求可以訪問Servlet、哪些不能訪問。就是url-pattern的作用,并且會加載springmvc.xml配置文件。

2、前端控制器會找到處理器映射器(HandlerMapping),通過HandlerMapping完成url到controller映射的組件,簡單來說,就是將在springmvc.xml中配置的或者注解的url與對應的處理類找到并進行存儲,用map<url,handler>這樣的方式來存儲。

3、HandlerMapping有了映射關系,并且找到url對應的處理器,HandlerMapping就會將其處理器(Handler)返回,在返回前,會加上很多攔截器。

4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過它來訪問處理器,并執行處理器。

5、執行處理器

6、處理器會返回一個ModelAndView對象給HandlerAdapter

7、通過HandlerAdapter將ModelAndView對象返回給前端控制器(DispatcherServlet)

8、前端控制器請求視圖解析器(ViewResolver)去進行視圖解析,根據邏輯視圖名解析成真正的視圖(jsp),其實就是將ModelAndView對象中存放視圖的名稱進行查找,找到對應的頁面形成視圖對象

9、返回視圖對象到前端控制器。

10、視圖渲染,就是將ModelAndView對象中的數據放到request域中,用來讓頁面加載數據的。

11、通過第8步,通過名稱找到了對應的頁面,通過第10步,request域中有了所需要的數據,那么就能夠進行視圖渲染了。最后將其返回即可。

好了,文章到此結束,希望可以幫助到大家。

返回列表
上一篇:
下一篇: