本篇內(nèi)容介紹了“SpringMVC的攔截器、過濾器、視圖層、異步源碼分析”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),通川網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:通川等地區(qū)。通川做網(wǎng)站價(jià)格咨詢:13518219792
整合Jsp 視圖層
@Bean public InternalResourceViewResolver internalResourceViewResolver() { // 1.需要前綴 InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver(); // 2.需要后綴 internalResourceViewResolver.setPrefix("/WEB-INF/view/"); internalResourceViewResolver.setSuffix(".jsp"); return internalResourceViewResolver; }
<%@ page contentType="text/html;charset=UTF-8"> SpringMVC攔截器使用攔截器與過濾器區(qū)別攔截器和過濾器都是基于AOP實(shí)現(xiàn)的,能夠?qū)φ埱蠓椒ㄖ昂椭髮?shí)現(xiàn)攔截過濾器是基于Servlet實(shí)現(xiàn)的,對web請求之前和之后實(shí)現(xiàn)攔截?cái)r截器不需要依賴servlet,不僅可以實(shí)現(xiàn)web請求,還可以對其它方法攔截 SpringMVC攔截器的使用1.自定義攔截器攔截請求Tokenpublic class TokenInterceptor implements HandlerInterceptor { /** * 請求方法前置攔截,如果返回true 表示會執(zhí)行到目標(biāo)方法(請求方法) 如果返回false的情況下 則不會執(zhí)行目標(biāo)方法。 */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token = request.getParameter("token"); System.out.println(">>>>token<<<<:" + token); if (StringUtils.isEmpty(token)) { response.setStatus(500); response.getWriter().print(" token is null"); return false; } // 執(zhí)行我們的請求方法 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("<<<postHandle>>>>"); // 請求之后執(zhí)行。 } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println(">>>afterCompletion<<<"); // 請求之后執(zhí)行。 } } @Configuration @ComponentScan(basePackages = {"com.mayikt.controller","com.mayikt.service"}) public class SpringMvcConfig extends WebMvcConfigurationSupport { ...// 1.手動注入攔截器到Spring中@Bean public TokenInterceptor tokenInterceptor() { return new TokenInterceptor(); } // 2.添加攔截器@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(tokenInterceptor()).addPathPatterns("/**");// 攔截所有的請求} } 注意:使用攔截器一定要關(guān)閉EnableWebMvc 否則攔截器不會生效。進(jìn)入這個(gè)@EnableWebMvc注解中,可知加入這個(gè)注解EnableWebMvc重復(fù)注入了WebMvcConfigurationSupport,會覆蓋我們自定義的配置類 SpringMVC多線程異步處理使用異步注解@EnableAsync@RequestMapping("/pay") public String pay() { System.out.println(">>>1.開始調(diào)用pay<<<<<<< ThradName:" + Thread.currentThread().getName()); payServie.pay(); System.out.println(">>>3.結(jié)束調(diào)用pay<<<<<<< ThradName:" + Thread.currentThread().getName()); return "pay"; } 使用異步Callable 帶返回結(jié)果@RequestMapping("/asyncPay") @ResponseBody public Callable<String> asyncPay() { System.out.println("1.開始執(zhí)行payToMember>>>> name:" + Thread.currentThread().getName()); Callable callable = new Callable<String>() { // 異步的對吧! public String call() throws Exception { // 耗時(shí)的時(shí)間都可以放到這個(gè)里面做 安卓里面 String member = memberService.member(); return member; } }; System.out.println("4.<<<<結(jié)束執(zhí)行payToMember>>> name:" + Thread.currentThread().getName()); return callable; } @Component public class MemberService { /** * member方法單獨(dú)開啟一個(gè)線程處理請求 * * @return */ public String member() { try { System.out.println("2.開始調(diào)用會員服務(wù)接口... name:" + Thread.currentThread().getName()); Thread.sleep(5000); System.out.println("3.結(jié)束調(diào)用會員服務(wù)接口.. name:" + Thread.currentThread().getName()); } catch (Exception e) { } return "member"; } } 面試題:SpringMVC項(xiàng)目中使用到多線程? 肯定是有。為什么要使用多線程?提高我們響應(yīng)的速度、異步執(zhí)行。在我們的Web中為什么要使用異步呢?目的:快速響應(yīng)給客戶端,防止客戶端請求等待的。單獨(dú)開啟一個(gè)線程處理。使用異步也有缺點(diǎn):線程安全問題、不能及時(shí)拿到結(jié)果、消耗CPU能夠讓耗時(shí)的時(shí)間,交給單獨(dú)線程處理 也能夠拿到異步線程結(jié)果本文參考螞蟻課堂http://www.mayikt.com/
“SpringMVC的攔截器、過濾器、視圖層、異步源碼分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
新聞名稱:SpringMVC的攔截器、過濾器、視圖層、異步源碼分析
網(wǎng)站路徑:http://jinyejixie.com/article10/iisjdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、Google、網(wǎng)站排名、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)