添加自定义注解
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,306 条评论
博客作者 Chelchind
[url=https://torlinks.net]https://torlinks.net[/url] Wiki Links Tor Urls Tor onion DarkWeb links
博客作者 МФО новые займ с быстрой регистрацией
Оформите займ под 0% без проверки кредитной истории и отказов – это реальность для новых клиентов! [url=https://t.me/s/mfo_2024_online]Новые МФО займы круглосуточно без отказов[/url] предлагают мгновенный перевод средств на карту практически каждому, кто старше 18 лет. Займ доступен онлайн, и получение денег займет всего несколько минут. Больше не нужно беспокоиться о сложностях и отказах – просто оформите заявку и получите свои деньги под 0% уже сегодня!
博客作者 JosephWAf
Контраварийное вождение: Основы и Методики
Контраварийное вождение это комплекс способностей и техник, которые помогают водителю избежать аварийных ситуаций на магистрали и совладать с автомобилем в экстренных условиях. Это важный аспект неопасного вождения, который может веско снизить риски на дороге.
Основные аспекты контраварийного управления автотранспортным средством:
Заключение
Контраварийное вождение требует опыта, обучения и неизменной практики. Понимание поведения машины и умение скоро реагировать в трудных ситуациях помогут водителям избежать аварий и сохранить безопасность как их самих, так и окружающих. Не забывайте, что обучение контраварийному вождению должно стать долею вашей подготовки как водителя.
博客作者 МФО новые займы с моментальным решением
Когда срочно нужны деньги, нет времени на длительные процедуры. Онлайн займы на карту без отказа – это решение для всех, кто ценит свое время. В отличие от банков, [url=https://t.me/s/mfo_2024_online]МФО новые срочные займы без отказов[/url] предлагают займы без сложных проверок и долгих ожиданий. Оформить заявку можно за считанные минуты, а деньги поступят на карту практически мгновенно. Вам не нужно переживать о кредитной истории – шанс получить займ есть у каждого, кто старше 18 лет.
博客作者 Deteyling_uyon
Специализированный детейлинг в центре Москвы, для идеального внешнего вида Вашего авто.
Лучший детейлинг – [url=https://bestdeteyling-msk.ru/]https://bestdeteyling-msk.ru/[/url] .
博客作者 Deteyling_ynel
Профессиональный уход за Вашим автомобилем
Детейлинговый центр – [url=https://deteylingavto-msk.ru/]Детейлинговый центр -[/url] .
博客作者 Luchshiy_kfpn
Эксклюзивное обслуживание для Вашего автомобиля
Лучший детейлинг [url=https://deteylingcenter-msk.ru/]Лучший детейлинг[/url] .
博客作者 Deteyling_iwOt
Идеальный сервис для Вашего автомобиля в Москве, опытные специалисты.
Лучший детейлинг центр в Москве – [url=deteylingmoscowcenter.ru]deteylingmoscowcenter.ru[/url] .
博客作者 Claire
Hmm it appears like your blog ate my first comment (it was extremely long) so
I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your
blog. I as well am an aspiring blog blogger but I’m still new to everything.
Do you have any points for newbie blog writers? I’d definitely appreciate it.
博客作者 Rolandbig
Medication resource here. Recent medicine developments.
[url=https://propecia365n.top/#]how to buy cheap propecia[/url]
Medicine guide available. Current medication trends.
博客作者 Boomerangde.com
In closing [url=https://boomerangde.com/]boomerang bet[/url] is more than just a casino; it’s a complete gaming hub that offers something for everyone. Whether you’re playing for the thrill of the game or the anticipation of winning, boomerangde.com is the right destination. Don’t miss out—sign up today and begin your adventure all the fantastic opportunities that await!
博客作者 Boomerangcasinode.com
Another attractive feature of [url=https://boomerangcasinode.com/]boomerang casino login[/url] is its commitment to responsible gaming. The platform offers gamblers with resources and resources to manage their playing patterns effectively, promoting a sustainable practice between entertainment and responsible gaming. The customer support team is also easily accessible to support with any concerns or queries, providing fast and professional service to improve the overall site experience.
博客作者 Rolandbig
Formulation info listed. Get drug facts.
[url=https://propecia365n.top/#]cheapest place to buy propecia online[/url]
Latest medicine news. Medication data provided.
博客作者 Boomerangde.com
One of the key highlights of [url=https://boomerangde.com/]boomerang-bet casino[/url] is its attractive welcome bonuses, which offer new players an solid head start. With up to 500€ in rewards and regular promotions, there’s always something to enjoy. The casino is dedicated to ensuring a secure and reliable environment, utilizing advanced encryption technologies to safeguard your data and transactions.
博客作者 blealabop
[url=https://promokody-letual.ru/sloti/sloti-igrovie-avtomati-igrat-besplatno-i-bez-registratsii-demo.html]слоты игровые автоматы играть бесплатно и без регистрации демо[/url] [url=https://promokody-letual.ru/igrat-registratsii/igrovoy-avtomat-igrat-besplatno-bez-registratsii.html]игровой автомат играть бесплатно без регистрации[/url] [url=https://promokody-letual.ru/1hbet/bonus-za-registraciu-bez-vkladu.html]bonus za registraciu bez vkladu[/url] [url=https://promokody-letual.ru/skachat/aviator-igra-na-dengi-skachat-1.html]aviator игра на деньги скачать[/url] [url=https://promokody-letual.ru/zerkalo/casino-x-zerkalo-na-segodnya-mobilnaya.html]casino x зеркало на сегодня мобильная[/url] [url=https://promokody-letual.ru/rossii/mozhno-li-igrat-v-onlayn-kazino-v-rossii.html]можно ли играть в онлайн казино в россии[/url] [url=https://promokody-letual.ru/map169.html]официальные ставки на спорт в россии онлайн[/url] [url=https://promokody-letual.ru/bonus-registratsiyu/bonus-pri-registratsii-v-bukmekerskoy.html]бонус при регистрации в букмекерской[/url] [url=https://promokody-letual.ru/stavki-sport/skachat-stavki-na-sport-na-ayfon.html]скачать ставки на спорт на айфон[/url] [url=https://promokody-letual.ru/bonus-registratsiyu/kazino-onlayn-v-kazahstane-bonus-za-registratsiyu.html]казино онлайн в казахстане бонус за регистрацию[/url] [url=https://promokody-letual.ru/dengi/loto-onlayn-igrat-na-dengi.html]лото онлайн играть на деньги[/url] [url=https://promokody-letual.ru/bonus-registratsiyu/igrovie-avtomati-s-denezhnim-bonusom-pri-registratsii.html]игровые автоматы с денежным бонусом при регистрации[/url] [url=https://promokody-letual.ru/vhod/pin-up-vhod-v-lichniy-kabinet-1.html]pin-up вход в личный кабинет[/url] [url=https://promokody-letual.ru/vivodom-deneg/kazino-onlayn-s-vivodom-deneg.html]казино онлайн с выводом денег[/url] [url=https://promokody-letual.ru/pin/pin-up-onlayn-kazino-ofitsialniy-sayt.html]pin up онлайн казино официальный сайт[/url] [url=https://promokody-letual.ru/prilozhenie/prilozhenie-kazino-s-vivodom-deneg.html]приложение казино с выводом денег[/url] [url=https://promokody-letual.ru/rubley/nastolnie-igri-do-500-rubley.html]настольные игры до 500 рублей[/url] [url=https://promokody-letual.ru/onlayn/zaym-onlayn-bistro-cherez-gosuslugi.html]займ онлайн быстро через госуслуги[/url] [url=https://promokody-letual.ru/sloti/igrat-sloti-besplatno-bez-registratsii.html]играть слоты бесплатно без регистрации[/url] [url=https://promokody-letual.ru/zerkalo/skachat-odin-iks-bet-zerkalo.html]скачать один икс бет зеркало[/url]