添加自定义注解
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,285 条评论
博客作者 Frankgag
Find medication info. Comprehensive drug facts.
[url=https://propeciameds.online/#]purchase propecia online no prescription[/url]
Drug information available. Find medication facts.
博客作者 Edgarfak
[url=https://bs01.at]bs2web зеркало[/url] – блекспруте blacksprut me, blacksprut официальный
博客作者 PhillipMow
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat
博客作者 Pobelka
Очистка и покраска стен складов pobelka.su
Фирма «МАРКАДА-Клининг» делает покраску эмалями, водоэмульсионными красками, грунтами, антибактериальными составами. Мы не только белим, мы также наводим чистоту. Перед началом каждой покраски происходит детальное очищение полного объекта от загрязненностей, при чем не только визуальных, но и химических, бактериальных и органических. Закажите бесплатный подсчет стоимости работ на Вашем складе на сайте pobelka.su уже сейчас.
По запросу [url=https://pobelka.su/]очистка стен[/url] вы на верном пути. Частые наши проекты — это пространства для животноводства, птичники или свинарники. По скольку окружающая обстановка весьма значима для содержания животных, нужно в установленные сроки делать ремонт и делать уборку. Побелка горячей известью уничтожает грибок, при том не причиняет вред животным. Также овощехранилища нуждаются во внимании и обеспечении нужной температуры, влажности и климате. Выбрав услугу покраски, вы ощутимо продлите срок жизни овощам.
Мы расположены по адресу: г. Екатеринбург, ул. Вилонова, д. 33 А. Наш контактный телефон +7(965)528-61-38 звоните и задавайте все оставшиеся вопросы. Опыт компании более 10 лет в данной области, а новейшие технологии разрешают работать без помехи для животных. Профессиональный штат исполняет работы в самые сжатые сроки. Осуществляем работу по всей России.
Относительно [url=https://pobelka.su/]очистка потолка[/url] по России, выбирайте данную компанию. На веб портале pobelka.su Вы прочтёте много дополнительной информации о проделанной работе, также отзывы о нас и положительные рекомендации от крупнейших сельхозпроизводителей Тюменской и Ивановской областей. Звоните, пишите, будем рады сотрудничать с Вами.
博客作者 Beterawxi
[url=https://bonusy-betera.ru/]Betera бонус при регистрации[/url] — это отличная возможность для новых пользователей познакомиться с платформой и получить дополнительные средства для игры. Такой бонус делает процесс регистрации более привлекательным и выгодным.
博客作者 FrankPrism
FOREX SKLAD ДОСТУПНОЕ ОБУЧЕНИЕ СЕГОДНЯ – СВЕТЛОЕ БУДУЩЕЕ ЗАВТРА [url=https://forexsklad.org/]Программирование[/url] подробнее на сайте https://forexsklad.org/
博客作者 Jackieobeva
Bitcoin is the head and most eminent cryptocurrency, created in 2008 not later than an anonymous person or group of people using the pseudonym Satoshi Nakamoto. As a decentralized digital currency, Bitcoin operates without a principal authority or cull administrator. Transactions are verified aside network nodes through cryptography and recorded in a buyers distributed ledger called a blockchain. This ensures transparency and fastness, making it dark object of any take entity to manipulate or conduct the network. Bitcoin’s primary end is to furnish an another to old currencies, which are typically controlled around important banks and governments. Close to enabling peer-to-peer transactions without the stress after intermediaries, Bitcoin aims to revolutionize the pecuniary system, gift greater pecuniary openness and diminish proceeding costs.
https://kb22.ru
https://fish-profi.ru
https://advokat-maiorov40.ru
https://prosto-futbolka.ru
https://etherhorizons.today
https://cryptocove.pro
https://rezonans-m.ru
https://segodnya-ntv.ru
https://beautyindetails.ru
https://lovechannel.ru
博客作者 dublikaty_wopi
Эффективные способы удаления дубликатов номеров в вашей телефонной книге.
Легкий способ удалить дубликаты номеров на Android.
Как избежать дубликатов номеров при импорте контактов.
Почему важно избавляться от дубликатов номеров.
Экономьте место на устройстве: удаляйте дубликаты номеров.
Как определить и удалить дубликаты номеров в iPhone.
Как быстро проверить и удалить дубликаты номеров.
Лучшие приложения для удаления дубликатов номеров.
Как удаление дубликатов номеров может улучшить работу вашего смартфона.
Порядок в адресной книге: удаление дубликатов номеров.
дубликаты номеров [url=https://izgotovlenie-nomera.ru/]https://izgotovlenie-nomera.ru/[/url] .
博客作者 Frankgag
Comprehensive medicine overview. Drug info here.
[url=https://propeciameds.online/#]order propecia[/url]
Brand names listed. Patient drug guide.
博客作者 Kinofilka
Ищете где можно смотреть фильмы онлайн бесплатно и без рекламы? Тогда вам обязательно стоит посетить сайт https://kinogo-films.biz/. Здесь собраны лучшие фильмы разных жанров в HD качестве с профессиональным переводом. Без регистрации и оплаты, вы сможете наслаждаться просмотром фильмов в любое время суток.
Сайт отличается удобным поиском и продуманной навигацией, что делает его идеальным выбором для любителей кино. Больше не нужно ждать загрузки или сталкиваться с надоедливой рекламой – просто выбирайте фильм и погружайтесь в увлекательный мир кино прямо сейчас. Посетите https://kinogo-films.biz/ и откройте для себя мир качественного онлайн-кино!
博客作者 Raymondcib
Susan Wojcicki began her career in technology as a marketing executive at Intel. Her significant break came when she joined Google in 1999 as their first marketing manager. At Google, Wojcicki played a crucial role in the company’s growth, overseeing the development of key products like AdSense and Google Video https://susanwojcicki.ru/.
博客作者 Michaeljib
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat
博客作者 Kinofilka
Почему https://kinogo-films.biz/ — лучшее место для просмотра фильмов? Всё просто: здесь собраны лучшие фильмы и сериалы, которые можно смотреть в HD 1080 качестве, без рекламы и без регистрации. Этот сайт стал лидером в России и странах СНГ благодаря широкому выбору жанров, включая старые классические ленты и самые свежие новинки 2024 года. Вам больше не придется отвлекаться на рекламу или тратить время на регистрацию — всё просто и доступно.
Особенностью сайта является активный чат для зрителей, где можно обсудить просмотренные фильмы и предложить идеи по улучшению платформы. Если вы хотите наслаждаться кино без ограничений, https://kinogo-films.biz/ — ваш лучший выбор. Здесь вас ждет идеальное сочетание качества и удобства!
博客作者 DavidMes
web link [url=https://hamsterkombat.zone]hamster kombat[/url]
博客作者 Gerardoenews
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat