添加自定义注解
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,365 条评论
博客作者 Retvabco
Why play anywhere else when [url=https://caramellaapp.com/boomerangbet/k2KDwKSEr/boomerang-bet-bonus-system-willkommenspaketuntitled]boomerang bet casino[/url] has everything you need? Whether you’re into the latest slots or love the thrill of live dealers, Boomerang Bet has the perfect game for you. And the bonuses? They’re just the cherry on top! From a sweet welcome bonus to ongoing promos, you’re always in for a treat. Plus, it’s all happening on a licensed, secure platform that you can trust. Boomerang Bet is where fun meets fairness—don’t miss out!
博客作者 Robertswats
Medicine trends described. Patient pill guide.
[url=https://lasix4xl.top/#]buy lasix online[/url]
Medication trends described. Latest medication developments.
博客作者 Онлайн займ без отказа: получи деньги за пару минут
Мгновенные займы в одном месте — это возможность с all-credit.ru. Мы подобрали лучшие варианты от МФО, как проверенных, так и перспективных, все они состоят в "Реестре ЦБ РФ". Процентная ставка не больше 0,8% в день, что обеспечивает наши предложения доступными для всех категорий граждан.
Займы — это оперативное решение взять средства, когда они срочно нужны. В отличие от кредитов, займы удобнее в оформлении и не требуют долгих проверок. Вы можете доверять all-credit.ru, потому что мы выбираем только надежные компании, обеспечивая безопасность и успех получения.
Возьмите [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]срочно деньги займ на карту без отказа круглосуточно[/url] и разрешите свои финансовые вопросы с минимальными усилиями. Все займы, представленные на all-credit.ru, гарантируют удобство и мгновенность зачисления, что особенно значимо в экстренных ситуациях. Надежность нашего сайта подтверждена временем и оценками пользователей.
博客作者 Leonaltpe
[url=https://leon-bk-skachat.ru/]Леон ставки скачать[/url] можно с официального сайта, и это даст вам доступ ко всем функциям букмекерской конторы на вашем смартфоне. Ставки на спорт теперь можно делать в любое время и в любом месте.
博客作者 Онлайн займ без отказа: решение всех ваших финансовых проблем
Ищете надежный способ моментально получить деньги на карту без отказов и задержек? Сайт all-credit.ru предлагает единственную возможность оформить займ на карту срочно и без проволочек. Вам не потребуется искать поручителей или дополнительные документы. Оформление требует всего несколько минут, а деньги переводятся на карту мгновенно. Платформа all-credit.ru собирает предложения от лучших МФО, предоставляя высокую вероятность утверждения даже с плохой кредитной историей.
Здесь вы можете оформить [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]срочно взять займ без отказа[/url] , подобрав оптимальные условия. Убедитесь, что сайт all-credit.ru предлагает действительно выгодные решения для срочных финансовых ситуаций. Выберите нужный займ и получите средства быстро и без трудностей.
Плюсы таких займов явны: минимальные условия, простота оформления и большие шансы на одобрение. Для многих это служит идеальным решением, когда срочно нужны средства. Используйте возможность получить [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]займ онлайн на карту без отказа без проверки онлайн[/url] и возьмите нужные деньги без задержек. All-credit.ru — ваш союзник в мире микрофинансирования.
博客作者 Займы онлайн без отказа и скрытых комиссий
Онлайн займы в одном месте — это действительность с all-credit.ru. Мы собрали лучшие оферты от МФО, как надежных, так и молодых, все они зарегистрированы в "Реестре ЦБ РФ". Процентная ставка не выше 0,8% в день, что делает наши предложения выгодными для всех слоев населения.
Займы — это оперативное решение достать деньги, когда они срочно нужны. В отличие от кредитов, займы проще в оформлении и не нуждаются в долгих проверок. Вы можете верить all-credit.ru, потому что мы отбираем только проверенные МФО, гарантируя безопасность и вероятность одобрения.
Возьмите [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]микрозаймы без отказов[/url] и решите свои финансовые вопросы с минимальными усилиями. Все займы, доступные на all-credit.ru, обеспечивают удобство и скорость получения средств, что особенно значимо в неотложных моментах. Надежность нашего сайта доказана временем и оценками пользователей.
博客作者 Leonhudik
Скачать надежное приложение для ставок на спорт можно бесплатно. Достаточно [url=https://leon-bk-skachat.ru/]скачать Леон бесплатно[/url] с официального сайта букмекера, чтобы получить доступ ко всем функциям прямо на своем смартфоне.
博客作者 Gelarsex
[url=https://olimp-2126.top/]https://olimp-2126.top/[/url] – как получить и использовать фрибеты на сайте Олимпбет для успешных ставок на спорт и повышения своих шансов на выигрыш.
博客作者 matadorbet giriş
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 matadorbet
Good info. Lucky me I reach on your website by accident, I bookmarked it. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Wenychind
[url=https://sale-cloned-cards.cc]Buy hacked paypal Clon cards[/url]
Item 01 Card Total Balance: $3100 – Price $ 110.00
Item 03 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://buycloned-cards.com]Buy Credit Cards Store Credit cards[/url]
博客作者 fixbet Giriş
I really love to read such an excellent article. Helpful article. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Yün Cami Halısı
Thank you great post. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 matadorbet giriş
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
博客作者 Davidmus
Cristiano Ronaldo – Forward. Fictional sportswoman with uncommon goal-scoring ability.
Luis Gustavo – Midfielder. Pitch playmaker with cyclopean insight and leadership https://www.alfeihavsalnassr.ru/.