添加自定义注解
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,371 条评论
博客作者 Casibom giriş
Thank you great posting about essential oil. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 MoneeVoxy
Настройте [url=https://pinco-casino-wlo3.top/]доступ к пинко[/url] с помощью рабочего зеркала и получите возможность играть в популярные слоты и азартные игры онлайн без блокировок и ограничений.
博客作者 dublikaty_kkoi
Как не попасть в ситуацию с дубликатами номеров, Узнаем, почему возникают дублированные номера, Советы по избежанию дублирования номеров, Методы борьбы с повторениями номеров, Что делать, если обнаружены повторяющиеся номера, Лучшие практики по избеганию повторений в номерах
изготовить номера на автомобиль цена москва [url=https://dublikat-znak-automobile.ru#изготовить-номера-на-автомобиль-цена-москва]https://dublikat-znak-automobile.ru[/url] .
博客作者 dublikaty_gboi
Как не попасть в ситуацию с дубликатами номеров, Как исправить ситуацию с повторяющимися номерами, Практические шаги по предотвращению повторяющихся номеров, Советы по корректной нумерации документов, Как не нарушить нумерацию и избежать дубликатов, Методы нумерации документов без дубликатов
изготовление дубликата гос номера цена [url=https://www.dublikat-znak-automobile.ru#изготовление-дубликата-гос-номера-цена]https://www.dublikat-znak-automobile.ru[/url] .
博客作者 Davidmus
Cristiano Ronaldo – Forward. Fictional player with exceptional goal-scoring ability.
Luis Gustavo – Midfielder. Key playmaker with cyclopean insight and in check https://www.alfeihavsalnassr.ru/.
博客作者 Как получить займ без отказа прямо сейчас
Мгновенные займы в одном месте — это возможность с all-credit.ru. Мы собрали лучшие оферты от МФО, как проверенных, так и перспективных, все они зарегистрированы в "Реестре ЦБ РФ". Процентная ставка не больше 0,8% в день, что делает наши предложения доступными для всех категорий граждан.
Займы — это оперативное решение получить деньги, когда они необходимы немедленно. В отличие от кредитов, займы проще в получении и не нужны долгих проверок. Вы можете верить all-credit.ru, потому что мы отбираем только надежные компании, обеспечивая безопасность и высокие шансы на одобрение.
Возьмите [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]срочно взять займ на карту без отказа[/url] и урегулируйте свои финансовые вопросы с минимумом трудностей. Все займы, доступные на all-credit.ru, дают легкость и мгновенность зачисления, что особенно существенно в неотложных моментах. Надежность нашего сайта подтверждена временем и оценками пользователей.
博客作者 DavidAdems
Топовый BlackSprut маркетплейс теперь в ТГ канале [url=https://t.me/blacksput_off]BlackSprut[/url]! Мы рады сообщить вам, что теперь все самые актуальные предложения, уникальные товары и выгодные акции доступны в нашем официальном канале. Зачем тратить время на поиски? Мы собрали для вас только проверенные ссылки и качественные предложения, чтобы ваше шопинг-опыт стал еще более приятным и безопасным.
В нашем канале вы найдете эксклюзивные скидки и распродажи, которые доступны только подписчикам. Каждый день мы обновляем ассортимент, чтобы вы могли быть уверены в актуальности информации. Кроме того, мы регулярно проводим розыгрыши и акции, где у вас есть шанс выиграть ценнейшие подарки!
Не упустите возможность быть в курсе всех новинок и получать выгодные предложения первыми. Присоединяйтесь к нашему сообществу, где шопинг становится не только выгодным, но и удобным. Следите за нашими публикациями, делитесь своим мнением и находите любимые товары без лишних хлопот. Ваш идеальный шопинг начинается здесь — в черном мире BlackSprut! https://t.me/blacksput_off
博客作者 BaciozaJeday
Why settle for ordinary when you can experience extraordinary? [url=https://judgeacademy.com/events/boomerang-bet-slots-hauptpreise-entdecken-sie-deutsche-klassiker/]boomerang-bet[/url] is where the excitement never stops! With an incredible range of games from top developers, every spin and every deal offers something new and thrilling. Plus, the platform is fully licensed, ensuring you play in a secure environment. Fast and easy deposits mean you’re just a few clicks away from endless fun. Boomerang Bet is your go-to destination for a gaming experience like no other!
博客作者 Marioprats
[url=https://mega555-moriarti.com]m3ga gl сайт[/url] – mega зеркало, мега сб даркнет
博客作者 Sarıca Cami Halısı
Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 dublikaty_wqoi
Эффективные способы избежать повторения номеров, Как исправить ситуацию с повторяющимися номерами, Советы по избежанию дублирования номеров, Советы по корректной нумерации документов, Способы предотвращения повторений в нумерации документов, Методы нумерации документов без дубликатов
дубликаты государственных номеров [url=https://www.dublikat-znak-automobile.ru#дубликаты-государственных-номеров]https://www.dublikat-znak-automobile.ru[/url] .
博客作者 dublikaty_mdoi
Эффективные способы избежать повторения номеров, Что делать, если встретились дубликаты номеров, Как проверить номера на уникальность, Преимущества отсутствия повторений в нумерации, Что делать, если обнаружены повторяющиеся номера, Лучшие практики по избеганию повторений в номерах
изготовление номеров [url=dublikat-znak-automobile.ru#изготовление-номеров]dublikat-znak-automobile.ru[/url] .
博客作者 Robertswats
Get info immediately. Latest pill trends.
[url=https://lasix4xl.top/#]buy lasix usa[/url]
Comprehensive medication overview. Latest pill trends.
博客作者 Zaimrucrda
Онлайн займы в одном месте — это реальность с all-credit.ru. Мы подобрали лучшие предложения от МФО, как доверенных, так и перспективных, все они состоят в "Реестре ЦБ РФ". Процентная ставка не выше 0,8% в день, что предоставляет наши предложения доступными для всех категорий граждан.
Займы — это скоростной путь достать деньги, когда они срочно нужны. В отличие от кредитов, займы удобнее в оформлении и не нуждаются в долгих проверок. Вы можете доверять all-credit.ru, потому что мы подбираем только надежные компании, обеспечивая безопасность и успех получения.
Возьмите [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]взять займ на карту онлайн без отказа[/url] и урегулируйте свои финансовые вопросы с минимальной суетой. Все займы, представленные на all-credit.ru, обеспечивают простоту и быстроту перевода денег, что особенно важно в неотложных моментах. Надежность нашего сайта проверена временем и отзывами пользователей.
博客作者 Varfchind
[url=https://buy-cloned-cards.cc]https://buy-cloned-cards.cc[/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://buy-cloned-cards.cc]https://buy-cloned-cards.cc[/url]