91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC適配器模式作用范圍是什么

發布時間:2023-05-08 15:35:40 來源:億速云 閱讀:117 作者:iii 欄目:開發技術

這篇文章主要介紹“SpringMVC適配器模式作用范圍是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“SpringMVC適配器模式作用范圍是什么”文章能幫助大家解決問題。

    HandlerAdapter的作用

    HandlerAdapter 的作用是將 HTTP 請求與控制器之間的接口進行轉換。它接受一個處理請求的控制器(Handler,任何實現了Controller接口或者注解了 @Controller注解的類),并將請求的參數、請求的類型、響應的類型等信息適配給控制器進行處理,最終將處理結果封裝成一個 ModelAndView 對象返回給 DispatcherServlet。

    HandlerAdapter 的主要作用包括:

    請求參數適配

    當 Handler 方法需要參數時,HandlerAdapter 會根據參數類型和名稱,將請求中的參數適配給 Handler 的方法。例如,當 Handler 方法需要一個 String 類型的參數時,HandlerAdapter 會從請求中獲取參數,并將其轉換成 String 類型的參數傳遞給 Handler 的方法。

    請求類型適配

    HandlerAdapter 還負責將請求的類型適配給 Handler。例如,當請求為 GET 請求時,HandlerAdapter 會調用控制器方法中的 GET 方法;當請求為 POST 請求時,HandlerAdapter 會調用 Handler 中的 POST 方法。

    響應類型適配

    Handler 返回的結果通常應該是一個 ModelAndView 對象,因此 HandlerAdapter 負責將 Handler 的返回結果適配給 ModelAndView 對象。例如,當 Handler 返回一個字符串時,HandlerAdapter 會將該字符串封裝成 ModelAndView 對象并返回給 DispatcherServlet。

    HandlerAdapter的源碼實現

    HandlerAdapter 接口定義了一個方法,即 handle() 方法,用于處理請求并返回 ModelAndView 對象。

    Spring MVC 框架提供了多個 HandlerAdapter 的實現類,主要包括以下幾個:

    HandlerAdapter
    SimpleControllerHandlerAdapter
    HttpRequestHandlerAdapter
    AnnotationMethodHandlerAdapter
    RequestMappingHandlerAdapter

    下面以 RequestMappingHandlerAdapter 為例,介紹 HandlerAdapter 的源碼實現。

    public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if (handler instanceof HandlerMethod) {
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            ModelAndView mav = new ModelAndView();
            mav.setViewName(getViewName(handlerMethod));
            mav.addAllObjects(getModelAndView(handlerMethod, request, response));
            return mav;
        } else {
            throw new IllegalArgumentException("handler is not a HandlerMethod");
        }
    }

    該方法接受三個參數:HttpServletRequest、HttpServletResponse 和 Object。其中,HttpServletRequest 和 HttpServletResponse 分別表示當前請求和響應對象,Object 表示當前請求所對應的 Handler 的 HandlerMethod 對象。

    在 handle() 方法中,

    • 首先判斷傳入的 Handler 是否為 HandlerMethod 類型。

    • 如果是,則強制轉換為 HandlerMethod 對象,并初始化一個 ModelAndView 對象。

    • 然后,通過 getViewName() 方法獲取視圖名稱,并通過 getModelAndView() 方法獲取控制器方法的參數值并封裝成 ModelAndView 對象。

    • 最后,將 ModelAndView 對象返回給 DispatcherServlet。

    關于“SpringMVC適配器模式作用范圍是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    正定县| 兰西县| 怀来县| 射阳县| 香港| 二连浩特市| 普兰县| 平果县| 共和县| 类乌齐县| 天台县| 胶州市| 隆尧县| 中牟县| 商南县| 介休市| 奉新县| 色达县| 交城县| 清丰县| 博客| 深水埗区| 丘北县| 福海县| 武安市| 通渭县| 井研县| 伊宁县| 丰都县| 乌兰县| 财经| 潍坊市| 平泉县| 平和县| 霸州市| 松滋市| 讷河市| 永善县| 兰考县| 邮箱| 易门县|