目錄 1. Spring MVC基礎(chǔ)1.1 什么是Spring MVC?Spring MVC是一個基于Java的實現(xiàn)了MVC設(shè)計模式的請求驅(qū)動類型的輕量級Web框架,通過把模型-視圖-控制器分離,將web層進行職責解耦,把復雜的web應(yīng)用分成邏輯清晰的幾部分,簡化開發(fā),減少出錯,方便組內(nèi)開發(fā)人員之間的配合。 1.2 Spring MVC的優(yōu)點有那些?
1.3 Spring MVC的主要組件?
1.4 什么是DispatcherServlet?Spring的MVC框架是圍繞DispatcherServlet來設(shè)計的,它用來處理所有的HTTP請求和響應(yīng)。 1.5 什么是Spring MVC框架的控制器?控制器提供一個訪問應(yīng)用程序的行為,此行為通常通過服務(wù)接口實現(xiàn)??刂破鹘馕鲇脩糨斎氩⑵滢D(zhuǎn)換為一個由視圖呈現(xiàn)給用戶的模型。Spring用一個非常抽象的方式實現(xiàn)了一個控制層,允許用戶創(chuàng)建多種用途的控制器。 1.6 Spring MVC的控制器是單例的嗎?是單例的。 1.7 Spring MVC的單例控制器會帶來什么問題?如何處理?
1.8 簡述一下DispatcherServlet 的工作流程
1.9 MVC是什么?MVC是一種設(shè)計模式:
三層架構(gòu)的設(shè)計模式。用于實現(xiàn)前端頁面的展現(xiàn)與后端業(yè)務(wù)數(shù)據(jù)處理的分離。 1.10 MVC設(shè)計模式的好處有哪些?
1.11 Spring MVC與Struts2區(qū)別?
1.12 WebApplicationContext有什么作用?WebApplicationContext 繼承了ApplicationContext 并增加了一些WEB應(yīng)用必備的特有功能,它不同于一般的ApplicationContext ,因為它能處理主題,并找到被關(guān)聯(lián)的servlet。 2. Spring MVC注解2.1 注解原理是什么?注解本質(zhì)是一個繼承了Annotation的特殊接口,其具體實現(xiàn)類是Java運行時生成的動態(tài)代理類。我們通過反射獲取注解時,返回的是Java運行時生成的動態(tài)代理對象。通過代理對象調(diào)用自定義注解的方法,會最終調(diào)用AnnotationInvocationHandler的invoke方法。該方法會從memberValues這個Map中索引出對應(yīng)的值。而memberValues的來源是Java常量池。 2.2 Spring MVC常用的注解有哪些?
2.3 Sping MVC中的控制器注解是什么?一般用@Controller注解;
2.4 @Controller注解的作用在Spring MVC 中,控制器Controller 負責處理由DispatcherServlet 分發(fā)的請求,它把用戶請求的數(shù)據(jù)經(jīng)過業(yè)務(wù)處理層處理之后封裝成一個Model ,然后再把該Model 返回給對應(yīng)的View 進行展示。在Spring MVC 中提供了一個非常簡便的定義Controller 的方法,你無需繼承特定的類或?qū)崿F(xiàn)特定的接口,只需使用@Controller 標記一個類是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定義URL 請求和Controller 方法之間的映射,這樣的Controller 就能被外界訪問到。此外Controller 不會直接依賴于HttpServletRequest 和HttpServletResponse 等HttpServlet 對象,它們可以通過Controller 的方法參數(shù)靈活的獲取到。 @Controller 用于標記在一個類上,使用它標記的類就是一個Spring MVC Controller 對象。分發(fā)處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了@RequestMapping 注解。@Controller 只是定義了一個控制器類,而使用@RequestMapping 注解的方法才是真正處理請求的處理器。單單使用@Controller 標記在一個類上還不能真正意義上的說它就是Spring MVC 的一個控制器類,因為這個時候Spring 還不認識它。那么要如何做Spring 才能認識它呢?這個時候就需要我們把這個控制器類交給Spring 來管理。有兩種方式:
2.5 @RequestMapping注解的作用?RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。 RequestMapping注解有六個屬性
2.6 @ResponseBody注解的作用是什么?
2.7 @PathVariable和@RequestParam的區(qū)別?
3. Spring MVC運用3.1 Spring MVC怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的?
3.2 Spring MVC怎么和AJAX相互調(diào)用的?通過Jackson框架就可以把Java里面的對象直接轉(zhuǎn)化成Js可以識別的Json對象。具體步驟如下 :
3.3 Spring MVC如何解決GET、POST請求中文亂碼問題?
3.4 Spring MVC如何處理異常?可以將異常拋給Spring框架,由Spring框架來處理;我們只需要配置簡單的異常處理器,在異常處理器中添視圖頁面即可 3.5 Spring MVC如何攔截GET請求?可以在@RequestMapping注解里面加上method=RequestMethod.GET。 3.6 如何在方法里面得到Request,或者Session?直接在方法的形參中聲明request,Spring MVC就自動把request對象傳入。 3.7 Spring MVC如何獲取請求傳參?直接在方法的形參里面聲明這個參數(shù)就可以
3.8 SpringMVC多個參數(shù)如何優(yōu)雅接收?直接在方法中聲明這個對象,Spring MVC就自動會把屬性賦值到這個對象里面。 3.9 Spring MVC中函數(shù)的返回值是什么?返回值可以有很多類型,有String, ModelAndView。ModelAndView類把視圖和數(shù)據(jù)都合并的一起的,但一般用String比較好。 3.10 Spring MVC用什么對象從后臺向前臺傳遞數(shù)據(jù)的?通過ModelMap對象,可以在這個對象里面調(diào)用put方法,把對象加到里面,前臺就可以通過el表達式拿到。 3.11 怎么把ModelMap里面的數(shù)據(jù)放入Session里面?可以在類上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key。 3.12 Spring MVC攔截器如何使用?
4. 其他4.1 SpringMVC 中系統(tǒng)如何分層 ?
各層之間的關(guān)系: 表示層通過接口調(diào)用業(yè)務(wù)層,業(yè)務(wù)層通過接口調(diào)用持久層,這樣,當下一層發(fā)生變化改變,不影響上一層的數(shù)據(jù)。 MVC是一種表現(xiàn)層的架構(gòu) |
|