添加自定义注解
package org.book.configuration.aop; import java.lang.annotation.*; @Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface NoCheckLogin { }
创建一个SpringMvcHandler 类,继承HandlerInterceptorAdapter
package org.book.configuration.Handler; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.book.common.JsonResult; import org.book.configuration.aop.NoCheckLogin; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.lang.reflect.Method; @Slf4j public class SpringMvcHandler extends HandlerInterceptorAdapter { public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { } public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { } public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HandlerMethod hm = null; Method method = null; if(handler instanceof HandlerMethod) { hm = (HandlerMethod) handler; method = hm.getMethod();// 获取方法 } else { return true; } // 该方法是否添加 允许未登录访问注解 if (method !=null && method.isAnnotationPresent(NoCheckLogin.class)) { // 不拦截 return true; } String name = (String) request.getSession().getAttribute("user"); if (name != null) { return true; } else { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); PrintWriter out = null; try { out = response.getWriter(); out.append(new JSONObject().toJSONString(JsonResult.renderFail("用户未登录")) ); }catch (Exception e){ out = response.getWriter(); out.append(new JSONObject().toJSONString(JsonResult.renderError("后台出错"))); log.info(e.getStackTrace().toString()); } return false; } } }
被@NoLoginCheck注解的方法不会被拦截在springmvc配置文件配置拦截路径和排除路径
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:mapping path="/"/> <mvc:mapping path="/index.jsp"/> <mvc:exclude-mapping path="/assets/**"/> <mvc:exclude-mapping path="/images/**"/> <bean class="org.book.configuration.Handler.SpringMvcHandler"></bean> </mvc:interceptor> </mvc:interceptors>
1)预处理preHandle()方法
用户发送请求时,先执行preHandle()方法。会先按照顺序执行所有拦截器的preHandle方法,一直遇到return false为止,比如第二个preHandle方法是return false,则第三个以及以后所有拦截器都不会执行。若都是return true,则执行用户请求的url方法。
2)后处理postHandle()
方法调用了Service并返回ModelAndView,但未进行页面渲染,可以在这里继续修改ModelAndView
3)返回处理afterCompletion()
方法已经渲染了页面,在afterCompletion中,可以根据ex是否为null判断是否发生了异常,进行日志记录。注:一般使用preHandle这个拦截器进行预处理,对url进行请求拦截
Comments | 13,641 条评论
博客作者 CharlesTek
Hi there! [url=https://valtrexvl.top/#cialis-online-pharmacy]cost valacyclovir without dr prescription[/url] very good site.
博客作者 KevinDub
бургер кинг бонус коды wot 2017 аватария джекпот ютуб смотреть неуловимые джекпот отзывы о играх с выводом денег бонус коды для wot которые действуют сейчас бонус код bet365 johnnybet поставить ставки на кс го как создать свой игровой сайт как накрутить деньги в игре gardenscapes гослото 5 из 36 джекпот на сегодня 2017 читы на деньги на все игры бонус код от разработчиков для вот бонус коды на world of tanks рабочие как разблокировать кс го фаст как создать свой сайт открытия кейсов кс го
https://pamagroup.es/tipos-de-contaminantes-1/?unapproved=65590&moderation-hash=e7356a94222a3946bde0e1aea41e1607#comment-65590 кейсы стикеры в вк бесплатно https://l91692n8.beget.tech/profile.php?u=yvuletape бланки на закрытие ип 2014 https://crazyberry.in/%D1%84%D0%BE%D1%80%D0%B5%D0%BA%D1%81-%D0%BB%D0%B8%D0%B1%D0%BE-%D1%80%D1%8B%D0%BD%D0%BE%D0%BA-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D0%BD%D0%B0-%D0%B2%D0%B0%D0%BB%D1%8E%D1%82-0 гонки тачки 2 играть онлайн видео https://yafrm.com/home.php?mod=space&uid=19118&do=profile Хостинг для сайта https://bbs.topeetboard.com/home.php?mod=space&username=ogaxeg
форсе дроп нож добавление денег в i играх бонус код wot на 100 золота игра бомжара на андроид много денег пособия шкиперу скачать игру асфальт 8 мод много денег на андроид чит на деньги для всех вк игр бонус за посещения казино скачать игровые сайты на компьютер бесплатно как в игре аватарие выиграть джекпот в
как заработать денег в онлайн играх https://bbs.guitarw.com/home.php?mod=space&uid=30390 расторжение в брака в домодедово в загсе https://www.fande.jp/higashiura/bbs2015/bbs18.cgi ставки онлайн собаки https://320350.com/home.php?mod=space&uid=28439 в контакте как взломать игры на деньги https://startnownegociosdigitais.com/como-abrir-uma-estofaria/?unapproved=12001&moderation-hash=67579c3adf21bfa2bb67e160ca50b096#comment-12001 правила ставок букмекерских https://bbs.qc0769.com/home.php?mod=space&uid=427379
博客作者 tablet
[url=https://okmodafinil.com/]modafinil cost india[/url]
博客作者 儿童色情
Rurulu DAMAR https://nullvips.com https://nulledtr.net https://secretturk.com
博客作者 国产线播放免费人成视频播放
After all, what a great site and informative posts, I will upload inbound link – bookmark this web site? Regards, Reader.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 pills
[url=https://vermoxin.online/]vermox uk[/url]
博客作者 CharlesTek
Hi! [url=https://valtrexvl.top/#pharmacy-technician-online-courses]cost generic valacyclovir without insurance[/url] very good web page.
博客作者 drug
[url=https://accutaneo.com/]where can i buy accutane[/url]
博客作者 KevinDub
кейс winter offensive в кс го бесплатный тайный кейс скачать игровой шаблон для сайта в html рулетка для кс бесплатно бонус код к ворлд оф танкс 2016 бесплатно много денег в игре world of tank скачать игру sims на android много денег poker 888 бонус коды кейсы в кс го халява на сайтах скачать игру зомби против растений на андроид с бесконечными деньгами как получать деньги в игре качок код к игре ассасин на деньги i кейсы кс го на андроид скачать бесплатно сайты на которых можно заработать деньги кейсами как взломать приложение кс го кейсы
https://freerideincaustria.blogspot.de/2015/06/monte-altissimo-601-er-trail-s2.html скачать игру крысы много денег https://www.sawineimport.dk/2023/10/lismore-besoeger-alleroed/?unapproved=1631124&moderation-hash=d8dbacc5a7f995fd57d30e850a56926c#comment-1631124 заключение и расторжение брака вывод https://hipokampo.com/bbs/board.php?bo_table=free&wr_id=46772 стратегии не онлайн рпг https://bryners.ru/forum/viewtopic.php?f=5&t=90412 Хостинг серверов https://www.travellers.com.au/2020/01/20/your-best-gap-year/?unapproved=62286&moderation-hash=d1d263c1fdcfa77b117804d7e3aed4e1#comment-62286
много денег на игру pou сайты программы для заработка денег в интернете без вложений джекпот препарат фунгицид купить приложение для взлома игр на деньги открытие кейсов кс го на сайте семченко экономические игры про средневековье сайт вывода денег скинами игра машина перевозит деньги шаблон игрового сайта на wordpress как зарабатывать деньги в играх по приглашениям
игра могучий рыцарь с читами на деньги https://www.w3lc.com/2018/07/definition-of-smart-devices-by-w3lc.html юридическая консультация бесплатно об иностранных гражданах https://blog.emedica.co.uk/salaried-gp-posts-advantages-and-disadvantages/?unapproved=5671502&moderation-hash=c288ffd0dacb26f67a8d5b65914a586b#comment-5671502 теория ставки на спорт лайв https://vipblinds.ru/index.php?subaction=userinfo&user=ohigegov бонус коды на world of tanks 2016 рабочие https://lasillaturquesa.blogspot.it/2013/03/conocespolkarots.html бесплатные прогнозы от профессионалов на спорт на сегодня https://www.MSN.hk.cn/space-uid-575557.html
博客作者 現場兒童色情片
durumba kuraaa https://darktr.com/tags/rape-porn l https://dragonhackerz.com https://blackhackz.com
博客作者 cami halısı
Thank you great post. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 cheap
[url=https://lasixtbs.com/]lasix generic[/url]
博客作者 国产线播放免费人成视频播放
Thank you for content. Area rugs and online home decor store. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 elenty
如果你使用金融机器人,你的钱会持续增长24/7。 https://t.me/cryptaxbot/17?eviliavek13Vek
博客作者 zbahis
Everything is very open and very clear explanation of issues. was truly information.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut