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