1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        干貨!SpringMVC面試高頻問題整理

        共 3786字,需瀏覽 8分鐘

         ·

        2021-11-18 10:51

        點擊上方藍色字體,選擇“標星公眾號”

        優(yōu)質(zhì)文章,第一時間送達

        1.SpringMVC是什么? 請說出你對它的理解?

        SpringMVC是Spring將Web層基于MVC封裝后的框架.

        在沒有SpringMVC之前,Web層的Servlet負責的事情很多,很雜.
        ? 例如:接收請求,調(diào)用service層處理請求,封裝返回結(jié)果,響應(yīng)信息給瀏覽器.
        SpringMVC將Servlet負責的事情分門別類,進行具體的劃分.
        ? M-model: 封裝數(shù)據(jù)
        ? V-View: 封裝視圖
        ? C-Controller: 處理器方法,用于接收請求

        ?

        2.SpringMVC的加載流程是什么?

        加載流程,即服務(wù)器啟動時,加載SpringMVC的環(huán)境:
        ?? ??? ?1.服務(wù)器啟動時從web.xml文件開始加載
        ??? 2.初始總控制器 DispatcherServlet
        ??? 3.在總控制器的初始化方法中(initStrategies:初始化策略),完成核心組件的加載
        ?? ??? ?處理器映射器:HandlerMapping
        ???????? 建立綁定路徑與方法全限定名的對應(yīng)關(guān)系
        ????? 處理器適配器:HandlerAdapter
        ???????? 適配處理器的實現(xiàn)方式,調(diào)用指定的類反射執(zhí)行處理器方法
        ????? 視圖解析器:ViewResolver
        ???????? 根據(jù)邏輯視圖生成對應(yīng)的物理視圖,并將物理視圖返回

        ?

        3.SpringMVC的執(zhí)行流程是什么?

        執(zhí)行流程,即瀏覽器發(fā)起請求后,框架內(nèi)部的執(zhí)行鏈路:
        ?? ??? ?1.瀏覽器發(fā)起請求給服務(wù)器
        ??? 2.DispatcherServlet攔截來自瀏覽器的請求
        ??? 3.總控制器調(diào)用處理器映射器,根據(jù)請求路徑找到對應(yīng)的方法全限定名,并返回給總控制器
        ??? 4.總控制器調(diào)用處理器適配器,找到對應(yīng)的方法適配實現(xiàn)方式,調(diào)用指定的實現(xiàn)類反射執(zhí)行方法
        ??? 5.總控制器調(diào)用視圖解析器,根據(jù)邏輯視圖找到對應(yīng)的物理視圖
        ??? 6.生成響應(yīng)

        4.SpringMVC的核心組件有哪些?作用是什么?  

        ??? DispatcherServlet: 總控制器/前端控制器
        ????? 接收請求,調(diào)度
        ??? HandlerMapping: 處理器映射器
        ????? SpringMVC框架加載時,存放請求路徑與處理器方法之間的映射關(guān)系
        ??? HandlerAdapter: 處理器適配器
        ????? 適配處理器的實現(xiàn)方式,實現(xiàn)方式不同調(diào)用的適配器類不同.不同的適配器類,可以處理不同的處理器方法.
        ??? ViewResolver: 視圖解析器
        ????? 根據(jù)邏輯視圖,生成對應(yīng)的物理視圖,并將物理視圖返回給總控制器
        ??? Handler: 處理器
        ????? 我們自己編寫的用于處理器業(yè)務(wù)的方法

        5.SpringMVC常用注解有哪些?

        @RequestMapping
        ?? ?為處理器綁定瀏覽器訪問的路徑
        @RequestBody
        ?? ?解析請求攜帶的json數(shù)據(jù),封裝到對應(yīng)的javaBean中
        @ResponseBody
        ?? ?將響應(yīng)結(jié)果裝換成json并響應(yīng)給瀏覽器
        @Controller
        ?? ?用于創(chuàng)建Controller層類對象,并將類對象存放到SpringMVC的IOC容器中
        @ControllerAdvice
        ?? ?全局異常處理
        ? 全局數(shù)據(jù)綁定
        ? 全局數(shù)據(jù)預(yù)處理

        6.@Controller注解的作用

        用于創(chuàng)建Controller層類對象,并將類對象存放到SpringMVC的IOC容器中

        7.@RequestMapping注解的作用

        ?注解書寫位置:
        ?? ?類上: 用于窄化請求路徑,訪問此類中的方法時,方法路徑前都要加上此路徑
        ?? ?方法上: 為處理器方法綁定瀏覽器訪問的路徑

        8.SpringMVC如何設(shè)置轉(zhuǎn)發(fā)和重定向?

        請求轉(zhuǎn)發(fā):
        ?? ?邏輯視圖字符串 + 視圖解析器
        ?? ?響應(yīng)標記 + 物理視圖字符串
        重定向:
        ?? ?響應(yīng)標記 + 物理視圖字符

        9.SpringMVC中攔截器編寫方式?

        SpringMVC中的攔截器實現(xiàn)方式有兩種:
        ?? ?1.編寫一個類實現(xiàn)HandlerInterceptor接口,重寫抽象方法
        ? 2.編寫一個類繼承HandlerInterceptorAdapter,選擇性的重寫方法
        以上兩種方式需要在核心配置文件中配置攔截的路徑

        10.SpringMvc的處理器是不是單例模式?如果是,有什么問題?怎么解決?

        是單例模式,在多線程訪問的時候有線程安全問題.
        解決方案: 在控制器里面不能寫可變狀態(tài)量,如果需要使用這些可變的量,可以使用ThreadLocal解決,為每個線程單獨生成一個變量,獨立操作,互不影響.

        11.Springmvc的優(yōu)點?  

        1.可以支持各種視圖技術(shù),而不僅僅局限于JSP.

        2.與Spring框架集成(如IoC容器、AOP等)

        3.清晰的角色分配:總控制器(dispatcherServlet),請求到處理器映射(handlerMapping),處理器適配器(HandlerAdapter),視圖解析器(ViewResolver).

        4.支持各種請求資源的映射策略。

        ?

        其他小白零碎問題整理:

        1、SpingMvc中的控制器的注解一般用那個,有沒有別的注解可以替代

        一般用@Conntroller注解,表示是表現(xiàn)層,不能用用別的注解代替.

        2、@RequestMapping注解用在類上面有什么作用

        用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。

        3
        、怎么樣把某個請求映射到特定的方法上面

        直接在方法上面加上注解@RequestMapping,并且在這個注解里面寫上要攔截的路徑

        4、如果在攔截請求中,我想攔截get方式提交的方法,怎么配置

        可以在@RequestMapping注解里面加上method=RequestMethod.GET

        5、如果在攔截請求中,我想攔截提交參數(shù)中包含”type=test”字符串,怎么配置

        可以在@RequestMapping注解里面加上params=”type=test”

        6、我想在攔截的方法里面得到從前臺傳入的參數(shù),怎么得到

        直接在形參里面聲明這個參數(shù)就可以,但必須名字和傳過來的參數(shù)一樣

        7、如果前臺有很多個參數(shù)傳入,并且這些參數(shù)都是一個對象的,那么怎么樣快速得到這個對象

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

        8、怎么樣在方法里面得到Request,或者Session

        直接在方法的形參中聲明request,SpringMvc就自動把request對象傳入

        9
        、SpringMvc中函數(shù)的返回值是什么.

        返回值可以有很多類型,有String, ModelAndView,當一般用String比較好

        10、SpringMvc怎么處理返回值的

        SpringMvc根據(jù)配置文件中InternalResourceViewResolver的前綴和后綴,用前綴+返回值+后綴組成完整的返回值

        11
        、SpringMVC怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的

        在返回值前面加”forward:”就可以讓結(jié)果轉(zhuǎn)發(fā),譬如”forward:user.do?name=method4” 在返回值前面加”redirect:”就可以讓返回值重定向,譬如”redirect:http://www.baidu.com”

        12、 SpringMvc用什么對象從后臺向前臺傳遞數(shù)據(jù)的

        通過ModelMap對象,可以在這個對象里面用put方法,把對象加到里面,前臺就可以通過el表達式拿到

        13、SpringMvc中有個類把視圖和數(shù)據(jù)都合并的一起的,叫什么

        叫ModelAndView

        14、怎么樣把ModelMap里面的數(shù)據(jù)放入Session里面

        可以在類上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key

        15、SpringMvc怎么和AJAX相互調(diào)用的

        通過Jackson框架就可以把Java里面的對象直接轉(zhuǎn)化成Js可以識別的Json對象
        具體步驟如下
        1.加入Jackson.jar
        2.在配置文件中配置json的映射
        3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

        16、當一個方法向AJAX返回特殊對象,譬如Object,List等,需要做什么處理

        要加上@ResponseBody注解

        17、SpringMvc里面攔截器是怎么寫的

        有兩種寫法,一種是實現(xiàn)接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可:?

        1?
        2?
        3????"/modelMap.do"?/>
        4????"com.et.action.MyHandlerInterceptorAdapter"?/>
        5?


        ? 作者?|??再思

        來源 |??cnblogs.com/wu-sheng/p/15552149.html


        加鋒哥微信:?java3459??
        圍觀鋒哥朋友圈,每天推送Java干貨!

        瀏覽 68
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产网红女主播精品视频 | 男模裸体视频 | 双乳奶水饱满少妇呻呻吟 | 用力边走边做啊h | 999黄色视频 | 国产精品不卡 | 日本护士献身取精aaa电影在线 | 黄笔毛片大全免费观看 | 无码无卡 | 天天操91AV |