添加自定义注解
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,305 条评论
博客作者 topvitealo
Интересно: [url=https://topcooler.ru/voda-santalovskij-istochnik-19-litrov/]вода ессентуки от чего[/url] или [url=https://topcooler.ru/kuler-dlja-vody-hotfrost-45a-red-napolnyj/]кулер с бутылкой внутри[/url]
Может быть полезным: https://topcooler.ru/kulery-bez-ohlazhdeniya/ или [url=https://topcooler.ru/voda-19-l/]для воды в офис[/url]
[url=https://topcooler.ru/voda-gornaja-vershina-19-litrov]icelandic water[/url]
Ещё можно узнать: [url=https://yourdesires.ru/it/1336-porjadok-registracii-rabochej-stancii-na-pk-administratora-dlja-sps-konsultant-pljus.html]консультант плюс ключи запуска[/url]
博客作者 vorota-38.ru
если Вам нужно [url=https://vorota-38.ru/]изготовление ворот распашных металлических цена[/url] мы Вам поможем. Оформляйте заявку на онлайн ресурсе vorota-38.ru или звоните по телефону 8(950)111-68-77 прямо сегодня. У нас осуществляется бесплатный замер высококвалифицированными мастерами, работаем без посредников, а вернее без ваших переплат. Даётся гарантия на конструкции 5 лет.
博客作者 XRumer23daurb
Hello!
This post was created with XRumer 23 StrongAI.
Good luck :)
博客作者 GeorgeNailm
Пинап делает отличное предложение игрокам огромное количество игр, включая:
Бонусы и акции
Казино Пинап предлагает щедрые бонусы для новых и постоянных игроков:
Удобство и безопасность
Пинап уделяет большое внимание безопасности игроков [url=https://simferopol.in/topic/5320-world-of-warcraft-ot-medveda/]https://simferopol.in/topic/5320-world-of-warcraft-ot-medveda/[/url] Казино употребляет современные технологические процессы шифрования для высокой защиты собственных данных и денежной инфы. Также принципиально, что Пинап имеет лицензии, что подтверждает его правдивость и надежность.
Мобильная версия
Пинап дает возможность играть в любимые игры на мобильных устройствах. Мобильная версия веб-сайта приспособлена для удобного использования на смартфонах и планшетах, что позволяет игрокам наслаждаться азартом в любое время и в любом месте.
Заключение
Он-лайн казино Пинап зарекомендовало себя как надежный и удобный ресурс для азартных игр. С разнообразием игр, привлекательными бонусами и безопасной средой оно привлекает игроков со всего мира. Если вы отыскиваете высококачественное он-лайн казино, Пинап может стать отличным выбором.
博客作者 Beteraihb
Новый игрок на Betera может рассчитывать на [url=https://kak-poluchit-bonus-betera.ru/]Бетера бонус при регистрации[/url], который поможет сделать старт более уверенным. Благодаря этому предложению, у новичков появляется возможность лучше познакомиться с функционалом платформы и увеличить свои шансы на успех.
博客作者 Ruchnye_mkOi
Лучшие ручные 3D сканеры по доступной цене
3d сканер ручной [url=chnye-3d-skan.ru]chnye-3d-skan.ru[/url] .
博客作者 JosephGoalf
Чеки в СПБ Купить чеки в СПБ Кассовые чеки СПБ Товарные чеки в СПБ Гостиничные чеки в СПБ Чеки СПБ [url=https://t.me/CHEKI78]Купить чеки в СПБ[/url] подробнее в телеграм канале https://t.me/CHEKI78
博客作者 Jekdrype
https://t.me/s/kometa_casi/7
Start winning today, get a no deposit gift or free spins of your choice. Only the top best bonuses!
博客作者 Beterajke
Получение [url=https://kak-poluchit-bonus-betera.ru/]Betera бонус за регистрацию[/url] позволяет новым игрокам не только познакомиться с платформой, но и существенно повысить свои шансы на выигрыш. Используйте эту возможность и начните свою игровую карьеру с выгодным бонусом.
博客作者 GeorgeNailm
Пинап предлагает игрокам огромное количество игр, включая:
Бонусы и акции
Казино Пинап предлагает щедрые призы для новых и постоянных игроков:
Удобство и безопасность
Пинап уделяет большое внимание безопасности игроков [url=https://www.wamamall.com/obespechte-prosmotr-smotret-uzbekskie-filmy-novinki-filmov-vysokoi-chetkosti/]https://www.wamamall.com/obespechte-prosmotr-smotret-uzbekskie-filmy-novinki-filmov-vysokoi-chetkosti/[/url] Казино использует современные технологические процессы шифрования для высокой защиты личных данных и финансовой информации. Также важно, что Пинап имеет лицензии, что подтверждает его честность и надежность.
Мобильная версия
Пинап дает возможность играть в возлюбленные забавы на мобильных устройствах. Мобильная версия сайта адаптирована для удобного использования на смартфонах и планшетах, что позволяет игрокам наслаждаться азартом в хоть какое время и в любом месте.
Заключение
Он-лайн казино Пинап зарекомендовало себя как надежный и удачный ресурс для азартных игр. С многообразием игр, привлекательными призами и безопасной средой оно привлекает игроков со всего мира. Если вы ищете качественное онлайн казино, Пинап готов стать хорошим выбором.
博客作者 Beterahlg
Многие игроки интересуются, [url=https://bonusy-betera.ru/]как получить бонус Бетера[/url]. Процесс получения довольно простой: достаточно зарегистрироваться на платформе и следовать предложенным условиям. Это отличная возможность для новых пользователей начать игру с дополнительными средствами.
博客作者 Lamarviest
содержание [url=https://kraker14at.com]Kraken21.at[/url]
博客作者 LoraSef
Hello everyone!
I want to present you five fascinating pages that I believe are worth checking out. These resources can help expand your knowledge, find useful information, or simply relax. I hope you find them interesting!
https://center-yf.ru/data/Brokeru/index.php
https://www.kodi-tipps.de/die-besten-kodi-addons/
https://vapermexico.com/producto/vapeak-grand-5000-puffs-disposable-vape-box-device/
https://www.auteco.com.co/auteco-tvs/
https://suuber.ch/videos/
These pages offer a variety of materials that can be helpful for both knowledge and relaxation. I hope you enjoy them as much as I do! If you have your own interesting finds, I’d love it if you could post them in the comments.
博客作者 Gostchind
[url=https://salecloned-cards.cvv2cvc.net]https://salecloned-cards.cvv2cvc.net[/url]
Item 1 Card Total Balance: $3100 – Price $ 110.00
Item 3 Cards Total Balance $9600 – Price $ 180.00
Item PayPal Transfers $500 – Price $ 49.00
Item PayPal Transfers $ 2000 – Price $ 149.00
Item Western Union Transfers $ 1000 – Price $ 99.00
Item Western Union Transfers $ 300 – Price $ 249.00
*Prices on the website may vary slightly
[url=https://sale-clonedcards.cvv2cvc.net]Hacked paypal acc Cloned cards[/url]
Buy hacked paypal Clon cards
博客作者 Beteramel
Платформа Betera предлагает своим пользователям разнообразные [url=https://kak-poluchit-bonus-betera.ru/]Betera бонусы[/url], которые делают игру еще более увлекательной и выгодной. Благодаря таким предложениям, игроки могут значительно увеличить свои шансы на успех и получить дополнительные средства для ставок.