添加自定义注解
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,283 条评论
博客作者 CalvinTom
find more info [url=https://simplehold.pro]simple hold[/url]
博客作者 LS Tek
Демо игровых автоматов позволяют попробовать поиграть в казино, не тратя при этом своих финансовых средств. Это отличные метод попробовать себя, узнать новые игры и разработать стратегии без расхода средств.
Благодаря широкому выбору демо-слотов, каждый игрок найдет что-то по своему вкусу. От классических трехбарабанных слотов до современных видеослотов с захватывающей графикой и увлекательными бонусными раундами.
Играть в [url=https://lucky-slots.ru/sloty-s-nakopitelnym-bonusom/]игровые автоматы с накопительными бонусами играть бесплатно[/url] легко и удобно. Вам не нужно регистрироваться и пополнять баланс – просто выберите интересующую вас игру и начинайте вращать барабаны. Это отличная возможность попробовать разные стратегии ставок, изучить выигрышные комбинации и просто насладиться процессом игры.
Демо-режим также дает возможность вам сделать оценку отдачи игрового автомата и понять, подходит он вам или нет. Вы можете играть сколько угодно долго, не боясь за свои деньги.
博客作者 Patrickrip
Do you want to earn money online? Then come on in, good https://q32.pw/cztZ
博客作者 Vilvchind
[url=https://darkweblinks.biz]Urls Tor sites hidden[/url]
博客作者 Allanlaulp
Pill leaflet available. Prescribing guidelines here.
[url=https://stromectol365x.top/#]ivermectin lotion price[/url]
Medicine essentials explained. Get info immediately.
博客作者 LS Tek
Демо игровых слотов позволяют попробовать поиграть в казино, не тратя реальные деньги. Это отличные метод испытать удачу, узнать новые игры и разработать стратегии без каких-либо обязательств.
Благодаря широкому выбору демо-слотов, каждый игрок найдет что-то по своему вкусу. От классических трехбарабанных автоматов до современных видеослотов с захватывающей графикой и увлекательными бонусными раундами.
Играть в [url=https://lucky-slots.ru/]игровые автоматы играть бесплатно[/url] просто и легко. Вам не нужно регистрироваться и пополнять баланс – просто выберите интересующую вас игру и начинайте вращать барабаны. Это отличная возможность попробовать разные стратегии ставок, изучить выигрышные комбинации и просто насладиться процессом игры.
Демо-режим также дает возможность вам оценить процент отдачи игрового аппарата и понять, как он подходит вам по стилю и предпочтениям. Вы можете играть беспконечно долго, не боясь за свои деньги.
博客作者 Allanlaulp
Medicine overview available. Comprehensive drug guide.
[url=https://stromectol365x.top/#]stromectol 3 mg dosage[/url]
Drug specifics here. Patient medication resource.
博客作者 JasonFoush
Керамическая плитка это один из самых знаменитых материалов, используемых в дизайне интерьеров и внешних работах. Она сочетает в себе эстетическую привлекательность, долговечность и легкость в уходе, что делает ее безупречным выбором для разных помещений.
Преимущества керамической плитки
Где использовать керамическую плитку?
Керамическая плитка [url=https://endogin.ru/plitka-kerama-marazzi-luchshij-vybor-dlya-vashego-interera/]напольная плитка[/url] может быть применена как внутри, так и снаружи помещений:
Выбор и установка плитки
При выборе керамической плитки стоит учитывать:
Монтаж глиняной плитки лучше доверить профессионалам, неподражаемо если речь звучит о сложных узорах либо больших площадях. Но, присутствие опыта, возможно и самостоятельное исполненье работы.
Заключение
Глиняная плитка это универсальный и симпатичный материал, который способен преобразить любое пространство. Ее преимущества в долговечности, водостойкости и многообразии дизайна делают плитку безупречным выбором для обустройства как жилых, так и коммерческих помещений. Если вы ищете безупречное покрытие для вашего интерьера, керамическая плитка отличный вариант!
[url=https://sjthemes.com/remont-i-zamena-keramogranitnoj-plitki-chto-nuzhno-znat.html]керамогранит[/url]
博客作者 AntonioLow
Кайт школа в Хургаде DETIVETRA предлагает уникальную возможность для всех желающих освоить кайтсёрфинг в одном из самых живописных мест Египта. Наша программа обучения разработана для новичков и рассчитана всего на 3 дня, что позволяет быстро и эффективно погрузиться в мир этого захватывающего вида спорта [url=https://yandex.ru/profile/177183726173]кайт школа хургада[/url]
.
Каждый день занятий включает как теоретическую, так и практическую часть, обеспечивая глубокое понимание техники, безопасности и управления кайтом. Занятия проводят сертифицированные instructors, которые имеют многолетний опыт и готовы поделиться своими знаниями и секретами с вами.
В течение курса вы научитесь начинать с нуля, уверенно управлять кайтом и совершать первые заплывы. Мы предлагаем идеальные условия для обучения: стабильные ветра, прозрачные воды и прекрасные пляжи Хургады создают идеальную атмосферу для кайтсёрфинга. Не упустите возможность испытать новые ощущения и насладиться свободой на воде под ярким египетским солнцем! Запишитесь в нашу школу уже сегодня и начните свое приключение в мире кайтсёрфинга с DETIVETRA! https://yandex.ru/profile/177183726173
博客作者 Allanlaulp
Comprehensive drug guide. Pill information available.
[url=https://stromectol365x.top/#]stromectol 12mg online[/url]
Pill info here. Side effects listed.
博客作者 兒童色情
DAMAR DAMAR DAMAR DAMAR DAMAR
博客作者 JasonFoush
Керамическая плитка это один из самых известных материалов, используемых в дизайне жилищ и наружных работах. Она сочетает внутри себя эстетическую привлекательность, долговечность и легкость в уходе, что делает ее образцовым выбором для разных помещений.
Преимущества керамической плитки
Где использовать глиняную плитку?
Глиняная плитка [url=https://sunmuseum.ru/novosti/42489-keramogranitnaya-plitka-dlya-naruzhnyh-rabot-chto-nuzhno-znat.html]плитка для стен[/url] может быть использована как внутри, так и снаружи помещений:
Выбор и монтаж плитки
При выборе глиняной плитки стоит учесть:
Установка керамической плитки лучше доверить профессионалам, необыкновенно если речь идет о сложных узорах или огромных площадях. Но, присутствие опыта, возможно и самостоятельное исполненье работы.
Заключение
Глиняная плитка это универсальный и симпатичный материал, который способен преобразить любое место. Ее преимущества в долговечности, водостойкости и многообразии дизайна делают плитку безупречным выбором для обустройства как жилых, так и коммерческих помещений. Если вы ищете безупречное покрытие для вашего интерьера, глиняная плитка отличный вариант!
[url=https://endogin.ru/plitka-kerama-marazzi-luchshij-vybor-dlya-vashego-interera/]керамическая плитка[/url]
博客作者 Allanlaulp
Patient medication guide. Medication resource here.
[url=https://stromectol365x.top/#]stromectol how much it cost[/url]
Comprehensive medication resource. Pill leaflet provided.
博客作者 JasonFoush
Керамическая плитка это один из самых знаменитых материалов, используемых в дизайне жилищ и внешних работах. Она соединяет в себе эстетическую привлекательность, долговечность и легкость в уходе, что делает ее образцовым выбором для разных помещений.
Преимущества керамической плитки
Где использовать глиняную плитку?
Керамическая плитка [url=https://sjthemes.com/remont-i-zamena-keramogranitnoj-plitki-chto-nuzhno-znat.html]напольная плитка[/url] может быть применена как внутри, так и снаружи помещений:
Выбор и установка плитки
При выборе глиняной плитки стоит учесть:
Установка глиняной плитки лучше доверить профессионалам, необыкновенно если речь идет о сложных узорах или великих площадях. Но, присутствие опыта, возможно и самостоятельное исполнение работы.
Заключение
Глиняная плитка это универсальный и симпатичный материал, который способен преобразить любое место. Ее преимущества в долговечности, водоустойчивости и разнообразии дизайна делают плитку идеальным выбором для обустройства как жилых, так и коммерческих помещений. Если вы ищете безупречное покрытие для вашего интерьера, керамическая плитка отличный вариант!
[url=https://endogin.ru/plitka-kerama-marazzi-luchshij-vybor-dlya-vashego-interera/]магазин керамической плитки[/url]
博客作者 Allanlaulp
Current drug trends. Access medication details.
[url=https://stromectol365x.top/#]ivermectin 1% cream generic[/url]
Detailed pill knowledge. Get info immediately.