添加自定义注解
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,319 条评论
博客作者 Kellyidera
Кайт школа в Хургаде DETIVETRA — это уникальное место, где мечты о свободном парении над водой становятся реальностью. Мы предлагаем профессиональное обучение кайтсёрфингу в Египте, которое позволит вам освоить этот захватывающий вид спорта всего за три дня. Наша команда опытных инструкторов, сертифицированных международными организациями, готова поделиться знаниями и навыками, которые сделали кайтсёрфинг доступным и безопасным для всех [url=https://t.me/detivetrachat]кайт хургада[/url].
В рамках нашего курса вы получите индивидуальный подход и внимание к каждому этапу обучения: от основ управления кайтом до первых самостоятельных заездов. Занятия проходят в идеальных условиях — на северном побережье Красного моря, где постоянно дует ветер и вода всегда тёплая.
После курса вы ощутите уверенность и радость от того, что способны самостоятельно управлять кайт-снаряжением. С DETIVETRA ваш путь к мастерству в кайтсёрфинге будет не только увлекательным, но и безопасным. Присоединяйтесь к нам и откройте для себя мир адреналина и свободы! https://t.me/detivetrachat
博客作者 Kellyidera
Кайт школа в Хургаде DETIVETRA — это уникальное место, где мечты о свободном парении над водой становятся реальностью. Мы предлагаем профессиональное обучение кайтсёрфингу в Египте, которое позволит вам освоить этот захватывающий вид спорта всего за три дня. Наша команда опытных инструкторов, сертифицированных международными организациями, готова поделиться знаниями и навыками, которые сделали кайтсёрфинг доступным и безопасным для всех [url=https://t.me/detivetrachat]кайт школа египет[/url].
В рамках нашего курса вы получите индивидуальный подход и внимание к каждому этапу обучения: от основ управления кайтом до первых самостоятельных заездов. Занятия проходят в идеальных условиях — на северном побережье Красного моря, где постоянно дует ветер и вода всегда тёплая.
После курса вы ощутите уверенность и радость от того, что способны самостоятельно управлять кайт-снаряжением. С DETIVETRA ваш путь к мастерству в кайтсёрфинге будет не только увлекательным, но и безопасным. Присоединяйтесь к нам и откройте для себя мир адреналина и свободы! https://t.me/detivetrachat
博客作者 bycasino güncel giriş
Thank you great posting about essential oil. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 bycasino deneme bonusu
Thank you great post. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 bycasino deneme bonusu
Thank you for content. Area rugs and online home decor store. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 bycasino güncel giriş
Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 buy google hacklink
best google hacklink services.
博客作者 zajmykoea
Бывают моменты, когда срочно требуются деньги. В таких случаях можно [url=https://zajmy24.ru/]взять займ[/url], что позволит оперативно закрыть финансовый вопрос.
博客作者 Kp3hdaurb
[url=https://t.me/s/kanal_dobryka]темки для девочек[/url]
博客作者 Kp3hdaurb
[url=https://t.me/s/kanal_dobryka]как купить билет по баллам ржд[/url]
博客作者 Angelloriz
Медикаментозное лечение экземы направлено на уменьшение воспалительного процесса и зуда.
Важно! Не занимайтесь самолечением, строго следуйте назначениям специалиста. Многие средства имеют противопоказания и ограничения, поэтому очная консультация врача обязательна и незаменима.
Больше информации здесь [url=https://kaklechitsya.ru/]kaklechitsya.ru[/url]
博客作者 priligy dapoxetine 60mg
Pretty part of content. I simply stumbled upon your web site and in accession capital to claim that I get in fact
loved account your weblog posts. Anyway I’ll be subscribing for
your augment and even I fulfillment you get entry to constantly fast.
博客作者 Rudolphzem
"Hi all! I’ve been considering about getting my drive shaft balanced, but I have doubts. On one hand, I would like a smooth, vibration-free ride. On the other hand, it’s not cheap.
Anyone tried balancing the drive shaft? Was there a noticeable change? Is it really worth the cost? I’d appreciate any advice or opinions!"
Article : [url=https://sproxy.dongguk.edu/_Lib_Proxy_Url/https://images.google.ca/url?sa=t&url=https://top.gg/api/auctions/click?url=https://www.google.co.id/url?q=https://vibromera.eu/example/balancing-instrument-at-the-price-of-a-vibrometer/] drive shaft balancing [/url]
博客作者 MatthewCox
Кайт сафари — это уникальное путешествие, где ветер становится вашим самым верным спутником, а горизонт — бескрайним полем для приключений. Вдоль побережий экзотических стран, сквозь пенные волны и свистящие порывы воздуха, кайтсерферы находят свои идеальные места для полета[url=https://kitehurghada.ru/kajt-safari/]кайт сафари соловейкин[/url].
Представьте себе, как легкий ветерок обнимает ваше тело, а яркий кайтовый парашют взмывает в небесную синь, позволяя вам парить над водной гладью. Каждая волна — это вызов, каждая эмоция — это всплеск адреналина. Вы мчитесь по поверхности моря, оставляя за собой яркий след, словно художник, рисующий свою картину на полотне природы.
С каждой новой локацией открывается уникальный мир: белоснежные пляжи, скрытые лагуны, величественные скалы. Местные жители делятся своими секретами, а опытные инструкторы помогают освоить новые навыки. Каждый момент этого сафари — это возможность открыть в себе не только нового спортсмена, но и исследователя, ощущающего волнение свободы и сродство с природой. Кайт сафари — это не просто отдых, это стиль жизни, полон вдохновения и дружбы [url=https://kitehurghada.ru/kajt-safari/]кайт сафари любимов[/url]. https://kitehurghada.ru/kajt-safari/
博客作者 MatthewCox
Кайт сафари — это уникальное путешествие, где ветер становится вашим самым верным спутником, а горизонт — бескрайним полем для приключений. Вдоль побережий экзотических стран, сквозь пенные волны и свистящие порывы воздуха, кайтсерферы находят свои идеальные места для полета[url=https://kitehurghada.ru/kajt-safari/]кайт сафари[/url].
Представьте себе, как легкий ветерок обнимает ваше тело, а яркий кайтовый парашют взмывает в небесную синь, позволяя вам парить над водной гладью. Каждая волна — это вызов, каждая эмоция — это всплеск адреналина. Вы мчитесь по поверхности моря, оставляя за собой яркий след, словно художник, рисующий свою картину на полотне природы.
С каждой новой локацией открывается уникальный мир: белоснежные пляжи, скрытые лагуны, величественные скалы. Местные жители делятся своими секретами, а опытные инструкторы помогают освоить новые навыки. Каждый момент этого сафари — это возможность открыть в себе не только нового спортсмена, но и исследователя, ощущающего волнение свободы и сродство с природой. Кайт сафари — это не просто отдых, это стиль жизни, полон вдохновения и дружбы [url=https://kitehurghada.ru/kajt-safari/]кайт сафари 2024[/url]. https://kitehurghada.ru/kajt-safari/