添加自定义注解
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,205 条评论
博客作者 synthroid 115 mcg
[url=https://synthroidsl.online/]synthroid 88 mcg in india[/url]
博客作者 PillsVot
TruePills, No prescription needed, Buy pills without restrictions. Money Back Guaranteed 30-day refunds.
Trial ED Pack consists of the following ED drugs:
Viagra Active Ingredient: Sildenafil 100mg 5 pills
Cialis 20mg 5 pills
Levitra 20mg 5 pills
https://cutt.ly/7wC5m1Id
https://wapmaster.scandwap.xtgem.com/?id=133.6.219.42%2Findex.php%3Ftitle%3DNine_Steps_To_Seo_Uk_Prices_Five_Times_Better_Than_Before&url=true-pill.top
https://soundterra.ru/bitrix/click.php?goto=https://true-pill.top/
https://www.aqplus.ru/bitrix/redirect.php?goto=https://true-pill.top/
https://alt1.toolbarqueries.google.al/url?q=https://true-pill.top/
https://xn--e1alqn.xn--p1ai:443/bitrix/redirect.php?event1=&event2=&event3=&goto=https://true-pill.top/
Sedaperidol
Sortis
Acular
Alfatrim
Almidis
Cetriwal
Firin
Acyvir
Talpramin
CapГ©citabine
Azanin
Vasotec
Beglaryl
Co-try
Omegamma
Pigrel
Nipidin
Naprometin
Impugan
Gimalxina
Trimethox
Kalcef
Kromicin
Loracert
Clintopic
Terazid
Medicef
Presopril
Amicor
Zantic
Cardiacin
Oflomac
Clovul
Canoral
Vidan
Bpnol
Petibelle
Llanol
Poncyl fp
Gabahexal
博客作者 order wegovy online
[url=https://bmtadalafil.online/]buy generic tadalafil online[/url]
博客作者 top 10 online pharmacy in india
[url=https://happyfamilystorerx.online/]canada rx pharmacy world[/url]
博客作者 Pumamoldova стильные женские кеды в ассортименте
Посетите фирменный магазин PUMA Moldova и погрузитесь в мир оригинальных вещей от мирового бренда! Насладитесь весенней распродажей коллекций 2023 года со скидками до 50%. Не пропустите возможность обновить свой гардероб высококачественной спортивной одеждой и обувью. Мы предлагаем бесплатную доставку по всей Молдове, чтобы ваш опыт покупки был еще приятнее и удобнее. Выбирайте лучшее в фирменном магазине PUMA Moldova и наслаждайтесь исключительным качеством и стилем!
Pumamoldova.md – [url=https://pumamoldova.md/ru/shop/male/footwear/shoes]кроссовки цена[/url]
Контакты и адрес – Молдова, г. Кишинев
博客作者 KafryhaTic
Материалы для неразрушающего контроля ndt.su
Организация инжектор приглашает на свой сайт в ассортимент товаров для неразрушающего контроля. Российский бренд, который прекрасно проявил себя в быту, имеет множество комментариев и заказчиков. Смотрите наш ассортимент на сайте ndt.su и делайте заказ с доставкой.
По теме [url=https://ndt.su/id/proyavitel-inspektor-ldn-kanistra-5l-168.html]капиллярный контроль купить[/url] Вы пришли по нужному адресу. Также рассмотрите наши спецпредложения по акции на сегодня: гель для ультразвукового контроля Инспектор, магнитная флуоресцентная суспензия Инспектор, ЭЧК Канавочный эталон чувствительности и другие. Весь каталог разделен на: капиллярный контроль, ультразвуковой, радиографический, экзаменационные образцы и другие. Переходите в нужный Вам класс, добавляйте продукты в корзину или к сравнению с похожими для Вашего точного выбора.
Мы находимся по адресу: РФ, Удмуртская республика, г. Ижевск, ул. Красногвардейская, д. 60, оф. 13. По любому вопросу звоните по телефону 8(800)555-45-19 или пишите на Email. График работы понедельник-пятница с 9:00 до 18:00, сб и вс выходные. Доставка происходит по всем городам России, всевозможными транспортными компаниями и организациями. Ещё по городу Ижевск работает доставка до Вашего адреса. При оплате заказа следует уточнить эту информацию нашему консультанту. Оплата происходит любым удобным для Вас методом.
Если Вы желали заказать [url=https://ndt.su/id/gel-dlya-ultrazvukovogo-kontrolya-inspektor-5kg-173.html]гель для ультразвукового контроля и толщинометрии[/url] в интернете, то переходите на наш сайт ndt.su уже сегодня. Мы уже много лет работаем в определенной сфере и знаем свои продукты идеально. Также с удовольствием готовы порекомендовать необходимые продукты именно для вашей обстановки. Мы используем в производстве компоненты сугубо Российского происхождения, следовательно нам это помогает держать цены на уровне, при этом не теряя в качестве. Будем рады сотрудничать с Вами.
博客作者 semaglutide buy uk
[url=https://metformin.store/]price for 240 metformin 850 mg[/url]
博客作者 semaglutide medication
[url=https://lisinoprill.com/]can you buy lisinopril online[/url]
博客作者 wegovy australia
[url=https://synthroidsl.online/]synthroid 0.112 mcg[/url]
博客作者 metformin cost
[url=https://metformindi.com/]metformin 500[/url]
博客作者 lisinopril 104
[url=https://lisinoprilgp.online/]lisinopril 5 mg canada[/url]
博客作者 canada online pharmacy no prescription
[url=https://medicinesaf.online/]reputable indian pharmacies[/url]
博客作者 lisinopril 40 mg for sale
[url=https://lisinoprilos.online/]prinivil 5 mg tablets[/url]
博客作者 NTD-RUS
Магнитно порошковый контроль ndt.su
По теме [url=https://ndt.su/]гель для ультразвуковой чистки ультраклин контроль[/url] Вы попали по верному адресу. Также посмотрите наши спецпредложения по акции на сегодня: ультрафиолетовый маркер Invisible, магнитный дефектоскоп на постоянных магнитах, ЭЧК Канавочный эталон чувствительности и другие. Подробный каталог разделен на: капиллярный контроль, магнитно-порошковый, вакуумный, визуальный и другие. Переходите в необходимый Вам класс, добавляйте продукты в заказ или к сравнению с похожими для Вашего комфорта выбора.
Мы расположены по адресу: РФ, Удмуртская республика, г. Ижевск, ул. Красногвардейская, д. 60, оф. 13. По любому вопросу звоните по телефону 8(800)555-45-19 или пишите на электронный адрес. График работы пн-пт с 9:00 до 18:00, сб и вс выходные.
博客作者 wegovy online order
[url=https://lisinoprilos.online/]lisinopril medication generic[/url]