SSM框架面試題之Spring Mvc

1、SpringMvc 的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

問題:單例模式,在多線程訪問時有線程安全問題
解決方法:不要用同步,在控制器裏面不能寫字段。

2、SpringMvc 中控制器的註解?

@Controller:該註解表明該類扮演控制器的角色

3、@RequestMapping 註解用在類上的作用?

作用:用來映射一個URL到一個類或者一個特定的處理方法上

4、前臺多個參數,這些參數都是一個對象,快速得到對象?

方法:直接在方法中聲明這個對象,SpringMvc就自動把屬性賦值到這個對象裏面

5、SpringMvc中函數的返回值?

String,ModelAndView,List,Set 等
一般String,Ajax請求,返回一個List集合

6、SpringMvc中的轉發和重定向?

轉發:return:“hello”
重定向 :return:“redirect:hello.jsp”

7、SpringMvc和Ajax之間的相互調用?

通過JackSon框架把java裏面對象直接轉換成js可識別的json對象,具體步驟如下:加入JackSon.jar在配置文件中配置json的映射在接受Ajax方法裏面直接返回Object,list等,方法前面需要加上註解@ResponseBody。

8、SpringMvc的工作流程圖?

在這裏插入圖片描述
1、 用戶發送請求至前端控制器DispatcherServlet。

2、 DispatcherServlet收到請求調用HandlerMapping處理器映射器。

3、 處理器映射器找到具體的處理器(可以根據xml配置、註解進行查找),生成處理器對象及處理器攔截器(如果有則生成)一併返回給DispatcherServlet。

4、 DispatcherServlet調用HandlerAdapter處理器適配器。

5、 HandlerAdapter經過適配調用具體的處理器(Controller,也叫後端控制器)。

6、 Controller執行完成返回ModelAndView。

7、 HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet。

8、 DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。

9、 ViewReslover解析後返回具體View。

10、DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。

11、 DispatcherServlet響應用戶。

9、Struts2 和 SpringMvc的區別?

入口不同:
(1)Struts2:filter過濾器
(2)SpringMvc:一個Servlet即前端控制器

開發方式不同:
(1)Struts2:基於類開發,傳遞參數通過類的屬性,只能設置爲多例
(2)SpringMvc:基於方法開發(一個url對應一個方法),請求參數傳遞到方法形參,可以爲單例也可以爲多例(建議單例)

請求方式不同:
(1)Struts2:值棧村塾請求和響應的數據,通過OGNL存取數據
(2)SpringMvc:通過參數解析器將request請求內容解析,給方法形參賦值,將數據和視圖封裝成ModelAndView對象,最後又將ModelAndView中的模型數據通過request域傳輸到頁面,jsp視圖解析器默認使用的是jstl。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章