性能上Struts1>SpringMvc>Struts2 開(kāi)發(fā)速度上SpringMvc和Struts2差不多,比Struts1要高f-sm-2. 講下SpringMvc的核心入口類(lèi)是什么,Struts1,Struts2的分別是什么
SpringMvc的是DispatchServlet,Struts1的是ActionServlet,Struts2的是StrutsPrepareAndExecuteFilterf-sm-3. SpringMvc的控制器是不是單例模式,如果是,有什么問(wèn)題,怎么解決
是單例模式,所以在多線(xiàn)程訪(fǎng)問(wèn)的時(shí)候有線(xiàn)程安全問(wèn)題,不要用同步,會(huì)影響性能的,解決方案是在控制器里面不能寫(xiě)字段f-sm-4. SpingMvc中的控制器的注解一般用那個(gè),有沒(méi)有別的注解可以替代
一般用@Conntroller注解,表示是表現(xiàn)層,不能用用別的注解代替.f-sm-5. @RequestMapping注解用在類(lèi)上面有什么作用
用于類(lèi)上,表示類(lèi)中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑。f-sm-6. 怎么樣把某個(gè)請(qǐng)求映射到特定的方法上面
直接在方法上面加上注解@RequestMapping,并且在這個(gè)注解里面寫(xiě)上要攔截的路徑f-sm-7. 如果在攔截請(qǐng)求中,我想攔截get方式提交的方法,怎么配置
可以在@RequestMapping注解里面加上method=RequestMethod.GETf-sm-8. 如果在攔截請(qǐng)求中,我想攔截提交參數(shù)中包含"type=test"字符串,怎么配置
可以在@RequestMapping注解里面加上params="type=test"f-sm-9. 我想在攔截的方法里面得到從前臺(tái)傳入的參數(shù),怎么得到
直接在形參里面聲明這個(gè)參數(shù)就可以,但必須名字和傳過(guò)來(lái)的參數(shù)一樣f-sm-10. 如果前臺(tái)有很多個(gè)參數(shù)傳入,并且這些參數(shù)都是一個(gè)對(duì)象的,那么怎么樣快速得到這個(gè)對(duì)象
直接在方法中聲明這個(gè)對(duì)象,SpringMvc就自動(dòng)會(huì)把屬性賦值到這個(gè)對(duì)象里面f-sm-11. 怎么樣在方法里面得到Request,或者session
直接在方法的形參中聲明request,SpringMvc就自動(dòng)把request對(duì)象傳入f-sm-12. SpringMvc中函數(shù)的返回值是什么.
返回值可以有很多類(lèi)型,有String, ModelAndView,當(dāng)一般用String比較好f-sm-13. SpringMvc怎么處理返回值的
SpringMvc根據(jù)配置文件中InternalResourceViewResolver的前綴和后綴,用前綴+返回值+后綴組成完整的返回值f-sm-14. SpringMVC怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的
在返回值前面加"forward:"就可以讓結(jié)果轉(zhuǎn)發(fā),譬如"forward:user.do?name=method4" 在返回值前面加"redirect:"就可以讓返回值重定向,譬如"redirect:http://www.baidu.com"f-sm-15. SpringMvc用什么對(duì)象從后臺(tái)向前臺(tái)傳遞數(shù)據(jù)的
通過(guò)ModelMap對(duì)象,可以在這個(gè)對(duì)象里面用put方法,把對(duì)象加到里面,前臺(tái)就可以通過(guò)el表達(dá)式拿到f-sm-16. SpringMvc中有個(gè)類(lèi)把視圖和數(shù)據(jù)都合并的一起的,叫什么
叫ModelAndViewf-sm-17. 怎么樣把ModelMap里面的數(shù)據(jù)放入Session里面
可以在類(lèi)上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的keyf-sm-18. SpringMvc怎么和Ajax相互調(diào)用的
通過(guò)Jackson框架就可以把java里面的對(duì)象直接轉(zhuǎn)化成Js可以識(shí)別的Json對(duì)象 具體步驟如下 1.加入Jackson.jar 2.在配置文件中配置json的映射 3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解f-sm-19. 當(dāng)一個(gè)方法向AJAX返回特殊對(duì)象,譬如Object,List等,需要做什么處理
要加上@ResponseBody注解f-sm-20. SpringMvc里面攔截器是怎么寫(xiě)的
有兩種寫(xiě)法,一種是實(shí)現(xiàn)接口,另外一種是繼承適配器類(lèi),然后在SpringMvc的配置文件中配置攔截器即可: <!-- 配置SpringMvc的攔截器 --><mvc:interceptors> <!-- 配置一個(gè)攔截器的Bean就可以了 默認(rèn)是對(duì)所有請(qǐng)求都攔截 --> <bean id="myInterceptor" class="com.et.action.MyHandlerInterceptor"></bean> <!-- 只針對(duì)部分請(qǐng)求攔截 --> <mvc:interceptor> <mvc:mapping path="/modelMap.do" /> <bean class="com.et.action.MyHandlerInterceptorAdapter" /> </mvc:interceptor></mvc:interceptors>f-sm-21. 講下SpringMvc的執(zhí)行流程
系統(tǒng)啟動(dòng)的時(shí)候根據(jù)配置文件創(chuàng)建spring的容器, 首先是發(fā)送http請(qǐng)求到核心控制器disPatherServlet,spring容器通過(guò)映射器去尋找業(yè)務(wù)控制器,使用適配器找到相應(yīng)的業(yè)務(wù)類(lèi),在進(jìn)業(yè)務(wù)類(lèi)時(shí)進(jìn)行數(shù)據(jù)封裝,在封裝前可能會(huì)涉及到類(lèi)型轉(zhuǎn)換,執(zhí)行完業(yè)務(wù)類(lèi)后使用ModelAndView進(jìn)行視圖轉(zhuǎn)發(fā),數(shù)據(jù)放在model中,用map傳遞數(shù)據(jù)進(jìn)行頁(yè)面顯示。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注