標籤:action eth ppi 傳遞資料 路徑名 規則 hand 參數綁定 對象
-
Spring MVC執行過程
-
用戶端的請求提交到dispatcherServlet
-
DispatcherServlet查詢一個或者多個handlermapping ,找請求的Controller
-
DispatcherServlet將請求提交給Controller, Controller調用完畢後返回modelAndView
-
DispatcherServlet查詢一個或多個對應的前端控制器,將modelAndView傳遞給指定的前端控制器
-
將渲染完的視圖返回給用戶端
-
SpringMVC的Controller為單例的盡量不要設定屬性,而是在方法中
-
@RequestMapping註解用在類上面代表該類方法的父路徑
-
SpringMVC與Struts2的主要區別
-
SpringMVC的前端控制器為一個Servlet 而Struts為Filter
-
SpringMVC的Controller為單例,而Struts2的Action為多例
-
SpringMVC是通過將request中的內容解析為形參,將相應和頁面封裝為Modelandview對象,struts2是採用值棧來儲存請求和相應
-
SpringMVC的攔截器
-
類實現介面HandlerInterceptor,實現方法,方法分別對應方法執行前 , 執行後 , 頁面渲染後
-
然後在設定檔中配置攔截器
-
多個攔截器一起執行的時候preHandler按照配置的順序執行,剩下的兩個攔截器都要在preHandler返回為True時才能執行.
-
postHandler和afterCompletion按照配置順序的逆序調用
-
json
-
上傳檔案
-
三大組件和核心
-
核心 : DispatcherServlet(前端控制器)
-
三大組件 :
-
ViewResolver : 視圖解析器()
-
HandlerMapping : 處理器映射器組件(尋找路徑名對應的Handler)
-
HandlerAdapter : 處理器適配器組件(執行Handler)
-
主要的註解
-
攔截規則
-
/* 攔截所有,包括jsp
-
/ 攔截除了jsp以外的資源
-
Controller的傳回值
-
重新導向和請求轉寄
- 在路徑前面添加關鍵字
return ‘redirect:/item/itemlist.action‘ return ‘forward:/item/itemlist.action‘
-
參數綁定
public ModelAndView toEdit(Integer id,HttpServletRequest request,HttpServletResponse response,HttpSession session)
-
異常處理
-
繼承HandlerExceptionResolver 實現對應的方法,對錯誤進行處理
-
springmvc配置<bean class="com.lyh.exception.CustomerException"></bean>
-
攔截提交參數中包含"type=test"字串
可以在@RequestMapping註解裡面加上params="type=test"
-
SpringMvc用什麼對象從後台向前台傳遞資料的
- 通過ModelMap對象,可以在這個對象裡面用put方法,把對象加到裡面,前台就可以通過el運算式拿到
-
怎麼樣把ModelMap裡面的資料放入Session裡面
- 可以在類上面加上@SessionAttributes註解,裡麵包含的字串就是要放入session裡面的key
-
SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決
- 是單例模式,所以在多線程訪問的時候有安全執行緒問題,不要用同步,會影響效能的,解決方案是在控制器裡面不能寫欄位
Spring MVC面試整理