亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Springmvc攔截器執行順序及各方法作用詳解

2024-07-14 08:41:50
字體:
來源:轉載
供稿:網友

實現HandlerInterceptor接口或者繼承HandlerInterceptor的子類,比如Spring 已經提供的實現了HandlerInterceptor 接口的抽象類HandlerInterceptorAdapter ,下面講實現其接口的寫法,先看一下這個接口的三個方法.

- 方法preHandle: 顧名思義,該方法將在請求處理之前進行調用,在controller之前執行。SpringMVC 中的Interceptor 是鏈式的調用的,在一個應用中或者說是在一個請求中可以同時存在多個Interceptor 。每個Interceptor 的調用會依據它的聲明順序依次執行,而且最先執行的都是Interceptor 中的preHandle 方法,所以可以在這個方法中進行一些前置初始化操作或者是對當前請求的一個預處理,比如說獲取cookie的值或者判斷是否已經登錄,也可以在這個方法中進行一些判斷來決定請求是否要繼續進行下去。該方法的返回值是布爾值Boolean 類型的,當它返回為false 時,表示請求結束,后續的Interceptor 和Controller 都不會再執行;當返回值為true 時就會繼續調用下一個Interceptor 的preHandle 方法,如果已經是最后一個Interceptor 的時候就會是調用當前請求的Controller 方法。

- 方法postHandle:由preHandle 方法的解釋我們知道這個方法包括后面要說到的afterCompletion 方法都只能是在當前所屬的Interceptor 的preHandle 方法的返回值為true 時才能被調用。postHandle 方法,顧名思義就是在當前請求進行處理之后,也就是Controller 方法調用之后執行,但是它會在DispatcherServlet 進行視圖返回渲染之前被調用,所以我們可以在這個方法中對Controller 處理之后的ModelAndView 對象進行操作,比如說設置cookie,返回給前端。postHandle 方法被調用的方向跟preHandle 是相反的,也就是說先聲明的Interceptor 的postHandle 方法反而會后執行

- 方法afterCompletion:該方法也是需要當前對應的Interceptor 的preHandle 方法的返回值為true 時才會執行。顧名思義,該方法將在整個請求結束之后,也就是在DispatcherServlet 渲染了對應的視圖之后執行。這個方法的主要作用是用于進行資源清理工作的。

例:

@Componentpublic class AuthInterceptor implements HandlerInterceptor { private static final String TOKEN_COOKIE = "token"; @Autowired private UserDao userDao; @Override public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler)     throws Exception {  Map<String, String[]> map = req.getParameterMap();  map.forEach((k,v) ->req.setAttribute(k, Joiner.on(",").join(v)));  String requestURI = req.getRequestURI();  if (requestURI.startsWith("/static") || requestURI.startsWith("/error")) {   return true;  }  Cookie cookie = WebUtils.getCookie(req, TOKEN_COOKIE);  if (cookie != null && StringUtils.isNoneBlank(cookie.getValue())) {    User user = userDao.getUserByToken(cookie.getValue());    if (user != null) {     req.setAttribute(CommonConstants.LOGIN_USER_ATTRIBUTE, user);     UserContext.setUser(user);    }  }  return true; } @Override public void postHandle(HttpServletRequest req, HttpServletResponse res, Object handler,     ModelAndView modelAndView) throws Exception {  String requestURI = req.getRequestURI();  if (requestURI.startsWith("/static") || requestURI.startsWith("/error")) {   return ;  }  User user = UserContext.getUser();  if (user != null && StringUtils.isNoneBlank(user.getToken())) {    String token = requestURI.startsWith("logout")? "" : user.getToken();    Cookie cookie = new Cookie(TOKEN_COOKIE, token);    cookie.setPath("/");    cookie.setHttpOnly(false);    res.addCookie(cookie);  } } @Override public void afterCompletion(HttpServletRequest req, HttpServletResponse response, Object handler, Exception ex)     throws Exception {  UserContext.remove(); }}

總結

以上所述是小編給大家介紹的Springmvc攔截器執行順序及各方法作用詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
热99精品里视频精品| 日韩a**站在线观看| 亚洲精品一二区| 亚洲第一色在线| 久久久久一本一区二区青青蜜月| 成人中文字幕+乱码+中文字幕| 亚洲欧洲xxxx| 国产精品久久999| 91在线观看免费高清| 欧美激情国产精品| 亚洲老头老太hd| 欧美激情性做爰免费视频| 国产视频精品xxxx| 国产精品香蕉国产| 欧美孕妇孕交黑巨大网站| 国产亚洲视频在线观看| 色婷婷**av毛片一区| 久久精品国产96久久久香蕉| 91国内揄拍国内精品对白| 亚洲缚视频在线观看| 欧美乱大交xxxxx| 欧美日韩精品中文字幕| 国产精品福利无圣光在线一区| 午夜精品久久久久久久99热| 亚洲男人的天堂网站| 精品日韩视频在线观看| 久久精品国产亚洲| 欧美最猛性xxxxx免费| 91久久在线播放| 国产欧美精品一区二区三区-老狼| 国产日韩精品在线| 国产精品高潮粉嫩av| 日韩电影在线观看永久视频免费网站| 91亚洲精华国产精华| 欧美午夜美女看片| 色偷偷综合社区| 欧美中文字幕在线播放| 成人黄色中文字幕| 成人国产精品日本在线| 精品日韩中文字幕| 69久久夜色精品国产69| 激情av一区二区| 成人a视频在线观看| 日韩毛片中文字幕| 久久国产精品久久国产精品| 成人免费淫片aa视频免费| 4p变态网欧美系列| 久久久久久久国产精品| 18一19gay欧美视频网站| 国产精品极品美女在线观看免费| 在线播放国产一区中文字幕剧情欧美| 久久99久久亚洲国产| 亚洲成av人片在线观看香蕉| 91免费视频国产| 欧美精品第一页在线播放| 国产免费一区二区三区在线观看| 久久99久久亚洲国产| 亚洲人在线观看| 国产欧美精品va在线观看| 日本一欧美一欧美一亚洲视频| 欧美激情视频在线观看| 亚洲视频在线观看| 国产精品久久久久一区二区| 欧美精品一本久久男人的天堂| 欧美黄色片免费观看| 亚洲精品综合精品自拍| 蜜臀久久99精品久久久无需会员| 亚洲欧美一区二区精品久久久| 国产精品福利在线| 91网站在线免费观看| 国产精品第七十二页| 亚洲最大在线视频| 7777kkkk成人观看| 欧美电影免费观看电视剧大全| 亚洲aⅴ日韩av电影在线观看| 国产最新精品视频| 精品视频在线播放色网色视频| 欧美中文字幕视频| 欧美成人中文字幕在线| 午夜精品美女自拍福到在线| 国产精品一区二区三区久久久| 欧美黑人又粗大| 91精品国产91久久| 69久久夜色精品国产69| 欧美成年人视频网站欧美| 992tv在线成人免费观看| 国产69精品99久久久久久宅男| 国产精品热视频| 日韩一区二区在线视频| 国产精品老女人精品视频| 国产精品第二页| 亚洲国产精品久久精品怡红院| 精品香蕉在线观看视频一| 久久精品国产99国产精品澳门| 久久国产天堂福利天堂| 欧美一级大胆视频| 日韩不卡在线观看| 久久精品视频免费播放| 欧美激情极品视频| 91sao在线观看国产| 久久国产精品久久久久久| 91免费看视频.| 97视频人免费观看| 国产精品美女久久| 91久热免费在线视频| 久久久影视精品| 日韩av中文字幕在线播放| 成人有码视频在线播放| 日韩极品精品视频免费观看| 欧美成人免费在线视频| 麻豆成人在线看| 精品久久久久久国产| 国产精品一区电影| 日韩美女视频免费在线观看| 亚洲精品免费网站| 国产一区二区三区在线免费观看| 大伊人狠狠躁夜夜躁av一区| 久久精品视频va| 久久大大胆人体| 中文字幕亚洲专区| 亚洲日本成人网| 丝袜亚洲另类欧美重口| 国产精品mp4| 国产精品视频播放| 黑人巨大精品欧美一区二区三区| 精品无码久久久久久国产| 九九热精品视频| 亚洲人精选亚洲人成在线| 亚洲国产精品99久久| 最近2019中文字幕在线高清| 欧美体内谢she精2性欧美| 2020欧美日韩在线视频| 亚洲色图第三页| 中文字幕亚洲专区| 第一福利永久视频精品| 国产精品主播视频| 国产欧美一区二区三区久久| 亚洲美女精品成人在线视频| 欧美激情一区二区三级高清视频| 91国产美女在线观看| 亚洲激情久久久| 久久网福利资源网站| 日韩中文字幕国产精品| 日韩精品视频三区| 亚洲淫片在线视频| 国产91精品久久久久久久| 午夜精品在线观看| 久久视频在线直播| 日韩欧美在线中文字幕| 国产91在线播放九色快色| 日韩欧美成人免费视频| 亚洲欧洲日产国码av系列天堂| 欧亚精品在线观看| 亚洲精品网站在线播放gif| 国产精品成人免费电影| 国内偷自视频区视频综合| 国产成人精品视| 久久久精品一区二区三区| 91精品免费久久久久久久久| 国产精自产拍久久久久久蜜| 亚洲一级黄色av| 91免费看国产| 国产精品一区二区三区久久久| 国产99视频在线观看|