添加自定义注解
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,485 条评论
博客作者 Flezrate
Коррекция зрения ласик Ижевск exci.ru
Оформите заявку на консультацию в наш центр на сайте exci.ru уже сегодня. Вашему вниманию представлен центр коррекции зрения Экси, который расположен в городе Ижевск. Самый лучший центр в соотношении цена/качество, также некоторые процедуры проводятся по медицинскому полису.
Если у Вас возникли проблемы со зрением, то момент настал чтобы навестить врача. У нас осуществляют работу настоящие профессионалы с отличным опытом, которые непременно помогут решить Вашу проблему. Звоните по контактному телефону +7(3412)68-27-50 и спрашивайте любые вопросы.
По части [url=https://exci.ru/methods/skleroplastika/]профилактика лечения близорукости[/url] мы Вам можем помочь. У нас большой спектр услуг: метод коррекции зрения ласик, методика проведения операции ФРК, оперативное лечение глакуомы, лазерная дисцизия задней капсулы хрусталика, ортокератологические линзы, безоперационная блефаропластика аппаратом JETT PLASMA LIFT и многие другие. Обратитесь за профессиональной помощью к нашим специалистам.
Чтобы осуществить [url=https://exci.ru/]восстановление зрения lasik[/url] приходите к нам. Мы расположились по адресу г. Ижевск, ул. Ленина, д. 101. График работы с понедельника по пятницу с 9:00 до 16:00, после 16:00 можно прийти, заблаговременно записавшись или по субботам и воскресеньям.
Увы и ах, очень многие люди, даже сегодня, во времена новых технологий, не обращаются к докторам с ухудшением зрения. А ведь в настоящий момент инновационные технологии способны осуществить коррекцию всего за один день. В обязательном порядке ходите на контроль и внимательно слушайте своих врачей, ведь чем раньше Вы обратитесь за помощью, тем быстрее она будет оказана.
博客作者 Byunyare
Еда на заказ в Ижевске bistroyar.ru
Рады пригласить Вас в наше bistroyar.ru бистро, где можно не только оперативно и вкусно позавтракать, а также провести бизнес встречу, делать заказ с доставкой, насладиться вкуснейшей кухней и побаловать себя вкусностями.
Бистро «ЯР» размещено по адресу г. Ижевск, ул. Максима Горького, д. 163. Время работы с 10:00 до 20:00 без выходных. Приходите к нам или оформляйте заказ с доставкой и наслаждайтесь блюдами разной кухни в обычной для себя среде.
По запросу [url=https://bistroyar.ru/]фабрика итальянское бистро[/url] вы на правильном пути. У нас можно срочно заказать еду с доставкой. Заходите в наше меню на сайте bistroyar.ru и добавляйте нужные блюда в корзину. Далее выбирайте способ доставки или самовывоз, что более комфортно для Вас. Если Вы желаете получить дома заказ, то непременно впишите верный адрес и контактный телефон.
Если Вы хотели найти [url=https://bistroyar.ru/]доставка готовых блюд[/url] прямо сейчас, то мы Вам готовы помочь. Наш лозунг – «хорошо, как дома», ведь мы приготавливаем еду с любовью, что многие клиенты оценили. По возникшим вопросам звоните по контактному телефону +7(3412)223-230 или оформляйте заявку на сайте. Обязательно попробуйте наши десерты и горячее, возможно, вкуснее было только у мамы на кухне.
博客作者 Michealcam
Promotional codes on games are significant codes that can be tempered to to come into various bonuses, discounts or other benefits in games. They are provided by meet developers or partaker companies and can be tempered to by both latest players and long-time players.
Gamble promo codes can excess you access to closed items, character upgrades, in-game currency coins, manumitted crystals, and more. Every so often they can also be euphemistic pre-owned to belt along up the gameplay or addition additional features.
To exploit a promotional corpus juris, you predominantly needfulness to record it into a rare tract in the game or on the developer’s website. After this, you will procure access to the bonuses provided not later than the code.
To bump into uncover the latest promotional codes for games, you can refer to the solemn target dissemble channels on societal networks, forums or sites specialized in collecting and updating promotional codes. Also, some games may send promotional codes to their players via email or in-game notifications [url=https://acceler8.ph/js/pgs/?bc-game-bonus-code-in-philippines-2024-best-bonus-codes-up-to-500-eur.html]BC.Game bonus codes in Philippines[/url]
It is effective to recall that promotional codes beget a little validity while, so establish unshakable they are up to age and use them on time. Also set up inescapable you only utilize consume promo codes from trusted sources to refrain from scams.
Blanket, gaming promo codes are a countless in the works to fathom excess features and improvements in games, so don’t young woman the unintentionally to feel betterment of them and redeem your gaming experience.
博客作者 Rubendidge
Hi there! [url=https://trustonlinepharmacy.shop/best-canadian-online-pharmacy.html]canadian pharmacy[/url] excellent internet site.
博客作者 medication
[url=https://itretinoin.online/]tretinoin 0.25[/url]
博客作者 lazernyy_thEt
Лазерный 3D сканер – инновационное решение для вашего бизнеса, подробный обзор.
Выбор профессионалов – лазерные 3D сканеры, широкий выбор.
Купить лазерный 3D сканер легко и выгодно, гарантированный сервис.
Выберите лучший лазерный 3D сканер для вашего бизнеса, специалисты рекомендуют.
Как выбрать качественный лазерный 3D сканер для дома?, плюсы и минусы.
лазерный 3d сканер купить [url=https://www.lazernyjddd-skaner3.ru/]https://www.lazernyjddd-skaner3.ru/[/url] .
博客作者 medication
[url=https://baclofenx.online/]order baclofen online usa[/url]
博客作者 Rubendidge
Hi there! [url=https://trustonlinepharmacy.shop]online pharmacy programs[/url] great web site.
博客作者 Casibom
Good info. Lucky me I reach on your website by accident, I bookmarked it. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Michealcam
Promotional codes on the side of games are special codes that can be tolerant of to earn miscellaneous bonuses, discounts or other benefits in games. They are provided beside meet developers or partaker companies and can be employed nigh both new players and long-time players.
Gamble promo codes can excess you access to clannish items, monogram upgrades, in-game currency coins, delivered crystals, and more. Every so often they can also be used to move up the gameplay or gain additional features.
To smoke a promotional criterion criteria, you generally speaking needfulness to participate in it into a significant tract in the prey or on the developer’s website. After this, you will have access to the bonuses provided by the code.
To find the latest promotional codes in support of games, you can refer to the certified game channels on societal networks, forums or sites specialized in collecting and updating promotional codes. Also, some games may send promotional codes to their players via email or in-game notifications [url=https://yfu.hu/images/pgs/keydrop-promo-codes-in-hungary-2024-best-bonus-codes-up-to-500-eur.html]Keydrop bonus codes in Hungary[/url]
It is powerful to muse on that promotional codes beget a fixed validity period, so establish satisfied they are up to go steady with and function them on time. Also make satisfied you exclusive manipulate promo codes from trusted sources to keep scams.
Complete, gaming promo codes are a countless in the works to go to extra features and improvements in games, so don’t fail to understand the chance to plagiarize drop of them and redeem your gaming experience.
博客作者 Rubendidge
Howdy! [url=https://trustonlinepharmacy.shop]cvs pharmacy online application[/url] great internet site.
博客作者 pharmacy
[url=https://bacclofen.online/]baclofen tablet[/url]
博客作者 sale
[url=https://aaccutane.com/]accutane pills price in india[/url]
博客作者 Hack Forum
Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 hacklink
Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut