添加自定义注解
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 | 21,783 条评论
博客作者 order
[url=https://effexor.directory/]effexor 150 mg[/url]
博客作者 MatthewWousy
Водительские права являются важным документом, который подтверждает право личика управлять средством передвижения. Получение прав это не только возможность управлять автомобилем, да и большая ответственность. В этой статье мы рассмотрим основные аспекты получения и использования водительских прав.
Процесс получения водительских прав
Категории водительских прав
Существует несколько категорий водительских прав, в зависимости от типа транспортного средства:
Ответственность обладателя [url=https://t.me/poluchit_prava2024/3]получить свидетельство ДОПОГ[/url] водительских прав
Обладание водительскими правами налагает на водителя определенные обязанности:
Заключение
Водительские права это включая право управлять транспортным средством, но и повинность соблюдать законы и заботиться о безопасности на магистрали. Ответственное отношение к вождению поможет предупредить огромное количество аварий и обеспечить безопасность как для водителя, так и для других участников дорожного движения.
博客作者 Josephgom
Выбор освещения для вашего дома этто страсть чуть только тема практичности, но и этапный аспект декора. Правильно выбранные люстры равным образом осветительные аппаратура смогут преобразить интерьер равно сляпать уютную атмосферу. У приобретении в течение веб-магазине стоит учитывать чуть-чуть главных моментов.
Перед чтобы яко пришить отыскивание, обусловьтесь со слогом вашего интерьера. Люстры также осветительные приборы обязаны гармонично навязываться на совокупную концепцию. Пользующиеся репутациею стили включают:
У предпочтении осияние важно учитывать работоспособность:
Размер а также высота поднебесная потолков в течение вашем помещении являются важными факторами у выборе люстры:
У нынешнем стоит учесть а также масштабы лично люстры. Обычно, чтобы верного избрания ямб люстры определяется числом составе: поперечник в сантиметрах = число длины равно ширины горницы в течение метрах. КО образчику, чтобы горницы 5буква x 4буква, рекомендуемый упрямец 9 см.
Выбор ключей ура также располагает ценность:
Фасад конечной покупкой ясный путь ознакомьтесь с откликами а также рейтингами продуктов. Этто подсобит вам понять, в течение какой критерии лучшая (а) также прочная порекомендованная модель. Обратите внимание на экспресс-фото снимки, чтоб увериться, что светильник соответствует вашим ожиданиям.
博客作者 SandraFleme
Discover the thrill of winning big at our premier [url=https://flashroyal.us/casinos/]casino bonuses online[/url], where every spin of the wheel promises excitement and opportunity. Immerse yourself in a world of luxury and glamour, where the lights are bright, and the stakes are high. Our casino offers an unparalleled gaming experience with a vast selection of classic and modern games tailored for all levels of players. Join us and feel the adrenaline rush as you take your chance at fortune in an atmosphere of elegance and sophistication.
博客作者 MatthewWousy
Права являются важным документом, который подтверждает право лица управлять транспортным средством. Получение водительских прав это не только возможность водить машину, а также большая ответственность. В этой статье мы рассмотрим основные аспекты получения и использования водительских прав.
Процесс получения прав
Категории водительских прав
Существует несколько категорий водительских прав, в зависимости от типа транспортного средства:
Ответственность собственника [url=https://t.me/poluchenie_prav_2024/7]купить дистанционно водные права[/url] водительских прав
Обладание водительскими правами налагает на водителя определенные повинности:
Заключение
Права это не только право управлять средством передвижения, но и повинность соблюдать законы и беспокоиться о безопасности на дороге. Ответственное отношение к вождению поможет предотвратить огромное количество аварий и обеспечить безопасность как для водителя, так и для других участников дорожного движения.
博客作者 generic
[url=https://modafinilmip.online/]provigil mexico[/url]
博客作者 drug
[url=https://nolvadexin.online/]nolvadex tamoxifen citrate[/url]
博客作者 Casinosa
Мечтаете о больших выигрышах и щедрых бонусах? Telegram канал [url=https://t.me/s/topcasino_rus]рейтинг лучших онлайн казино с лицензией[/url] предлагает подборку лучших казино с лицензией и бонусами. Эти казино радуют игроков приветственными бонусами, фриспинами и регулярными акциями.
Лицензированные казино гарантируют честную игру и безопасность ваших данных. Подписывайтесь на канал, чтобы узнавать о самых выгодных предложениях и бонусах. Начните свое путешествие к выигрышам с проверенными и надежными платформами!
博客作者 cheap
[url=https://aaccutane.com/]accutane in india price[/url]
博客作者 Josephgom
Религия освещения для вашего дома этто деть чуть только тема практичности, хотя также этапный аспект декора. Грамотно поджатые люстры равным образом осветительные приборы могут преобразить целла а также нахреначить удобную атмосферу. При приобретении в течение веб-магазине целесообразно учитывать несколько перных моментов.
Перед предметов как пришить разыскивание, обусловьтесь с языком вашего интерьера. Люстры да осветительные оборудование должны эстетично записываться в течение совокупную концепцию. Пользующиеся популярностью пошибы вводят:
При подборе осияние эпохально учитывать функциональность:
Ямб а также высота поднебесная потолков в течение вашем помещении являются высокопоставленными причинами у избрании люстры:
При данном целесообразно учесть и еще размеры наиболее люстры. Обычно, для строгого выбора размер люстры оприделяется числом формуле: поперечник на сантиметрах = число длины равно ширины комнатушки в течение метрах. ДЛЯ образчику, чтобы комнаты 5м x 4м, рекомендуемый поперечник 9 см.
Религия ключей света тоже обладает ценность:
Фасад конечной покупкой обязательно ознакомьтесь один-другой отзывами да рейтингами продуктов. Это подсобит для вас понять, на экой критерии качественная равно надежная предложенная модель. Оборотите внимание на фото снимки, чтобы увериться, что светильник подходит вашим ожиданиям.
博客作者 MatthewWousy
Права являются принципиальным документом, который подтверждает право личика управлять транспортным средством. Получение прав это не только возможность водить машину, но и большая ответственность. В этой статье мы рассмотрим основные аспекты получения и использования прав.
Процесс получения прав
Категории водительских прав
Существует несколько категорий водительских прав, в зависимости от типа транспортного средства:
Ответственность обладателя [url=https://otvet.mail.ru/answer/2058553367]получить права на трактор[/url] водительских прав
Обладание правами налагает на водителя определенные обязанности:
Заключение
Права это не только лишь право управлять транспортным средством, но и обязанность соблюдать законы и заботиться о безопасности на магистрали. Ответственное отношение к вождению поможет предотвратить огромное количество аварий и обеспечить безопасность как для водителя, так и для других участников дорожного движения.
博客作者 price
[url=https://mcadvair.online/]advair 20 mg[/url]
博客作者 MoneeVoxy
Изучаем возможности игры в казино [url=https://pinco-casino-wn4.top/]через приложение пинко[/url]: ассортимент игр, бонусы и акции для участников, способы внесения и вывода средств.
博客作者 zaemevhcj
Оформить [url=https://zaemke.ru]деньги в долг Минск[/url] можно легко и быстро онлайн. Узнайте больше о процентах и условиях получения займов в Беларуси.
博客作者 sale
[url=https://avermox.com/]where to buy vermox[/url]