1. 程式人生 > >SpringMvc 常見面試題整理(一)

SpringMvc 常見面試題整理(一)

  1. 你對springmvc的介紹?

    
    1. Spring 框架提供的構建web應用的模組
    2. 它是基於servlet功能實現的,通過實現Servlet介面的DispatcherServlet來封裝其核心功能實現,同時帶有配置的處理程式對映、檢視解析、主題解析以及上載檔案支援。
    3. 預設的處理程式是非常簡單的controller介面,只有一個方法handleRequest()。
  2. 簡單的談一下springMVC的工作流程?

    工作流程:
    1. 使用者傳送請求至前端控制器DispatcherServlet
    2. DispatcherServlet收到請求呼叫HandlerMapping。
    3. 
    通過HandlerMapping得到HandlerAdapter. 4. 呼叫handle()方法返回ModelAndVIew 5. DispatcherServlet將ModelAndView送給ViewResolver檢視解析器處理,解析返回具體的view 6. 將Model渲染到view檢視 7. 最後向用戶response響應
  3. SpringMVC和struts2的主要區別:

    1. springMVc的入口是一個servlet即前端控制器,而struts的入口是一個filter
    2. springmvc是基於方法開發,傳遞引數是通過方法形參,可以設計為單例或多例,而struts2是基於類開發,傳遞引數是通過類的屬性,只能設計為多例。
    3. 
    springmvc通過引數解析器將request內容進行解析成方法形參,將響應資料和頁面封裝成ModelAndView物件。而struts採用值棧儲存請求和響應的資料,通過OGNL表示式存取資料。
  4. 常用註解:

    1. @Controller
    2. @Service 宣告service元件
    3. @Repository 宣告Dao元件
    4. @Component 泛指之間,不好歸類時使用
    5. @RequestMapping 請求對映
    6. @Resource 用於注入,預設按名稱裝配
    7. @Autowired 用於注入,預設按型別裝配
    8. @Transactional 事務管理
    9. @ResponseBody
      [email protected]
      設定bean的作用域
      “`
  5. springmvc的controller是單例還是多例的?

    答:是單例的,只要controller裡面不定義屬性,執行緒就是安全的。主要是單例效能好。
  6. springmvc是怎樣設定重定向和轉發的?

    1. 重定向:在返回值前面加“redirect: ”
    2. 轉發:在返回值前面加“forward: ”
  7. @RequestMapping有哪些引數?

    1. value: 指定請求地址
    2. method: 指定請求的method型別:GETPOSTPUT等
    3. consumes: 指定請求的Content-Type,如application/json等
    4. produces: 指定響應的內容型別
    5. params: 指定請求必須包含的引數
    6. headers: 指定請求必須包含某些header
  8. @SessionAttributes的使用?

    
    1. 註解只能在類上使用
    2. 將模型中的資料儲存到session中