添加自定义注解
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,411 条评论
博客作者 rangevisio_leMi
Узнайте все о 3D-сканере RangeVision Smart, получите детальную информацию.
Уникальные возможности 3D-сканера RangeVision Spectrum, определитесь с покупкой.
Эффективное решение для сканирования – 3D-сканер RangeVision PRO, забронируйте демонстрацию.
Сравнение моделей 3D-сканеров RangeVision, исходя из ваших целей.
Технологии будущего от RangeVision, воспользуйтесь выгодным предложением.
rangevision [url=ngevision-rt3.ru]ngevision-rt3.ru[/url] .
博客作者 Bycasino
Thank you for great information. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Casibom
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
博客作者 pills
[url=https://xlyrica.com/]lyrica 400 mg[/url]
博客作者 onwin
Everything is very open and very clear explanation of issues. was truly information.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Casibom
Thank you for great article. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Jessecroli
Drug trends described. Pill effects explained.
[url=https://isotretinoin365n.top]buy accutane no rx[/url]
Access medicine facts. Comprehensive medicine resource.
博客作者 Warriorhcw,
Срочно Требуются: Курьеры-регистраторы
Ищем активных граждан РФ, живущих в Москве и области!
А так же, принимаются люди, для работы, проживающие в других регионах рф,
кроме (северного Кавказа)
Заработок от 3000 тыс. до 7000 тыс. за каждый выезд.
Совмещай работу с другими делами – гибкий график!
Твоя задача – регистрация компаний. Просто и выгодно!
Оплата сразу после выполнения задания!
Подходишь по возрасту (18-60 лет)Присоединяйся!
Начни зарабатывать больше прямо сейчас – ждем именно тебя!
А так же, требуются люди, на удаленную работу, по поиску и подбору
директоров (Курьеров-регистраторов) зп, от 5000 тысяч рублей, за подобранного человека.
работа #вакансия #Москва #курьер #регистратор #заработок #график #подработка
Начни зарабатывать больше прямо сейчас – ждем именно тебя!
https://chat.whatsapp.com/InLwqrVeXucCbCTqxkwrSo
博客作者 medication
[url=https://vermoxin.online/]where to get vermox[/url]
博客作者 Miguelbig
Купить дом с участком Ижевск нк18.рф
Сегодня почти каждый желает жить за городом. Кроме того, чтобы строительство было мгновенным, чтобы парк рядом и пруд, и до города близко. Звучит, как в сказке, правда? А мы прекрасно осознаем как воплотить эту сказку в реальность! Знакомьтесь с компанией нк18.рф в Ижевске, которая дарит реализацию такой фантазии за самые короткие сроки и по выгодным ценам. Не верите? Удостоверьтесь в этом самостоятельно, зайдя на наш интернет портал за полезной информацией.
По запросу [url=https://xn--18-1lcl.xn--p1ai/]строительство готовых домов[/url] вы на верном пути. Тут можно купить и заехать в дом за период от 8 месяцев, получить ипотеку на выигрышных условиях, и не проиграть в средствах — цена по время строительства не поменяется. Мы уже большое количество лет на рынке и имеем отличный опыт в архитектуре, помимо этого, всегда совершенствуемся, проходим обучения и пытаемся быть лучше с каждым проектом. Представлена увеличенная гарантия на кровлю, фундамент и стены.
Обращайтесь к нам за [url=https://xn--18-1lcl.xn--p1ai/]дом из газобетона под[/url] на любом этапе застройки. У Вас уже имеется загородный участок? Отлично, дом мы построим. Определим различные нюансы, предоставим рекомендации от специалистов по планировке. Участка не имеется? Мы предложим Вам несколько разных вариаций, которые смогут подойти именно под Ваш спрос.
По всем вопросам позвоните по номер телефона +7(929)276-00-53 или закажите на сайте нк18.рф и мы Вам перезвоним в ближайшее время. Находимся по адресу: г. Ижевск, ул. Береговая, д. 1. На представленном сайте есть отзывы тех, кто уже пользовался оказываемыми услугами. Хотите быть в их рядах? Мы ждем и с радостью окажем помощь Вам в исполнении мечты.
博客作者 onwin giriş
Thank you great post. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 By Casino
Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 onwin
Everything is very open and very clear explanation of issues. was truly information.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 pill
[url=https://lyricawithoutprescription.com/]lyrica without a prescription[/url]
博客作者 onwin
Thank you for content. Area rugs and online home decor store. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut