添加自定义注解
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,257 条评论
博客作者 Lazvukia
В нашем интернет-магазине dbshop.ru и сервисном центре мы предлагаем не только широкий ассортимент автозвукового оборудования, но и множество экспертных услуг, основанных на многолетний опыт работы. Наша команда специалистов готова выполнить самые сложные задачи, например, установка автосигнализации с автозапуском или полная шумоизоляция вашего автомобиля. Если вам требуется [url=https://dbshop.ru/catalog/usiliteli/4_kanalnye_usiliteli/]купить четырехканальный усилитель в авто[/url] наши специалисты помогут вам подобрать и осуществят монтаж идеальное оборудование. У нас вы обнаружите [url=https://dbshop.ru/blog/sovety-pokupatelyam/top-5-proizvoditeley-shumoizolyatsii/]шумоизоляция багажника автомобиля материалы[/url] которые удовлетворят все ваши запросы. Мы сотрудничаем исключительно с брендами, гарантируя качество и надежность каждой установки.
Наш длительный опыт дает нам возможность предложить клиентам не просто товары, а полноценные решения, которые делают ваш автомобиль комфортнее, безопаснее и доставляющим удовольствие в эксплуатации. Мы гордимся доверием наших клиентов и всегда стараемся превзойти их ожидания, обеспечивая первоклассный сервис и поддержку. Свяжитесь с нами, и вы убедитесь, что качество и профессионализм — это не просто слова.
Для заказа товаров и услуг свяжитесь с нами: г. Ижевск, ул. Коммунаров, 244, телефон +7 (3412) 91-21-21. Мы всегда рады помочь вам сделать ваш автомобиль лучше.
博客作者 Kuphdaurb
[url=https://t.me/sale_travels]промокод яндекс путешествие на отель[/url]
博客作者 JoshuaRot
Мы – команда профессионалов, специализирующихся на индивидуальном проектировании и изготовлении кухонь. Наши решения обеспечивают идеальное сочетание стиля и функциональности https://kuhnyaekuhnyaafabrika.ru/.
博客作者 Phillipkes
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat https://www.instagram.com/detivetra.ru
博客作者 MelvinJug
[url=https://musk-empire.com/]Musk Empire Комбо[/url]
Стремитесь заработать чище монет на Shroud Empire? Тут-то пруд оставляйте тапать, выполнять задачи, прокачивать способности и принимать участие в течение переговорах. Увеличивайте являющийся личной собственностью доход равно становитесь славнейшим владельцем империи!
https://www.musk-empire.com/
博客作者 Danielgycle
В нашем интернет-магазине dbshop.ru и сервисном центре мы предоставляем не только богатый выбор автозвукового оборудования, но и множество экспертных услуг, основанных на многолетний опыт работы. Наша группа экспертов готова выполнить самые трудные задания, будь то установка автосигнализации с автозапуском или полная шумоизоляция вашего автомобиля. Если вам требуется [url=https://dbshop.ru/blog/sovety-pokupatelyam/top-5-sabvuferov-dlya-avtomobilya/]сабвуфер под сиденье[/url] наши специалисты помогут вам подобрать и установить идеальное оборудование. У нас вы обнаружите [url=https://dbshop.ru/services/drugie-uslugi/izgotovlenie-dvernykh-kart/]изготовление дверных карт цены[/url] которые удовлетворят все ваши запросы. Мы сотрудничаем исключительно с брендами, обеспечивая высочайшее качество и долговечность установленного оборудования.
Наш многолетний опыт позволяет нам предлагать клиентам не просто товары, а комплексные решения, которые делают ваш автомобиль комфортнее, безопаснее и доставляющим удовольствие в эксплуатации. Мы гордимся доверием наших клиентов и всегда стараемся превзойти их ожидания, предоставляя высокий уровень сервиса и поддержки. Свяжитесь с нами, и вы поймете, что профессионализм и качество — это не просто слова.
Для заказа товаров и услуг свяжитесь с нами: г. Ижевск, ул. Коммунаров, 244, телефон +7 (3412) 91-21-21. Мы всегда рады помочь вам сделать ваш автомобиль лучше.
博客作者 LincolnJed
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat https://www.instagram.com/detivetra.ru
博客作者 Kuphdaurb
[url=https://t.me/megamarket_promokod_skidka]чизкейк скидка промокод[/url]
博客作者 kinogo-films.biz
Любите смотреть фильмы онлайн без ограничений и рекламы? Тогда вам точно стоит заглянуть на сайт https://kinogo-films.biz/! Здесь собрано огромное количество фильмов в HD качестве, которые вы можете смотреть абсолютно бесплатно и без регистрации. Независимо от ваших предпочтений, вы найдете здесь как новинки кино, так и классические фильмы, которые уже стали легендами.
Простой и удобный интерфейс сайта позволяет быстро найти нужный фильм, а качественный перевод и отсутствие рекламы сделают просмотр максимально комфортным. Смотрите фильмы онлайн в любое время и наслаждайтесь лучшими картинами без лишних преград! Переходите по ссылке https://kinogo-films.biz/ и убедитесь в этом сами!
博客作者 FrankiePiorp
Уборка от профессионалов в Иркутске avtoritet038.ru
В настоящее актуальное время услуги профессиональной уборки всё более пользуются востребованностью. Предлагаем Вам фирму Авторитет cleanservice, которая оказывает собственные услуги квалифицированной уборки по Иркутску. Работаем с жилыми и коммерческими помещениями, в последнем случае на долгой основе со всеми нужными документациями. Обстоятельства узнайте на веб портале avtoritet038.ru всё о наших услугах.
Что касается [url=https://avtoritet038.ru/]клининговые фирмы иркутск[/url] можно получить у нас. Позвоните по контактному телефону 8(3952)70-31-01 или заполните заявку на веб ресурсе. У нас лучшее оборудование для уборки и премиальные биосредства, вежливые клинеры, которые учтут все Ваши желания и работают исключительно с индивидуальным подходом. Оплата происходит только после работы, способ оплаты Вы можете выбрать самостоятельно.
Свободное время сегодня – самый дорогой ресурс. Некоторые люди отказались от домашних дел в пользу иных, более важных дел. Люди занимаются бизнесом, детьми, спортом или любимым хобби, а домашние дела доверяют специалистам. На веб ресурсе avtoritet038.ru Вы сможете пригласить их к себе в квартиру или в автосалон.
Наши услуги: [url=https://avtoritet038.ru/]клининговая компания[/url] или мытье витражей, химчистка ковров, чистка бытовой техники, чистка бассейнов, уборка различных территорий, уборка снега зимой, полировка полов и многие другие. Узнайте все детали у нашего консультанта по уже названному номеру телефона или оформите заявку на обратную связь. Мы находимся по адресу: г. Иркутск, ул. Советская, д. 115 Г.
博客作者 kinogo-films.biz
Любите смотреть фильмы без ограничений? На https://kinogo-films.biz/ вас ждет настоящий рай для киноманов! Здесь собрана огромная коллекция фильмов и сериалов в HD качестве, которые доступны без регистрации и абсолютно бесплатно. Забудьте о рекламе и наслаждайтесь любимыми картинами в любое время.
Сайт предлагает удобный интерфейс и возможность выбора фильмов по жанрам и годам выпуска, что делает его идеальным для вечернего отдыха. Присоединяйтесь к миллионам пользователей, которые уже выбрали https://kinogo-films.biz/!
博客作者 Gerryzex
Jagdeep Dhankhar was born on May 18, 1951, in Kithana, Rajasthan, India. He pursued his early education in Rajasthan and went on to study law at the University of Rajasthan https://jagdeepdhankhar.ru/.
博客作者 EverettVed
Мы – команда профессионалов с многолетним опытом в создании кухонь на заказ. Наша цель – создать пространство, которое сочетает в себе функциональность и стиль https://fabrikayfabrikaefabrika.ru/.
博客作者 Herbertred
[url=https://blacksprut-sait.top]блэкспрут сайт[/url] – блек спрут онион, блек спрут онион
博客作者 zajmyssxl
Бывают ситуации, когда деньги нужны немедленно. В таких случаях можно оформить [url=https://zajmy24.ru/]займ срочно[/url] и получить необходимую сумму уже в течение нескольких минут.