添加自定义注解
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,386 条评论
博客作者 Juliuspal
Recent drug developments. Access drug details.
[url=https://mexicopharmacy.top/#]legitimate online pharmacy[/url]
Latest pill news. Drug facts provided.
博客作者 TikTok Downloader
Your blog is a beacon of light in the often murky waters of online content. Your thoughtful analysis and insightful commentary never fail to leave a lasting impression. Keep up the amazing work!
博客作者 Juliuspal
Patient drug guide. Find pill information.
[url=https://mexicopharmacy.top/#]online pharmacy school[/url]
Latest pill developments. Medicine facts here.
博客作者 Tipobet Giriş
Thank you for great content. Hello Administ. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Kuphdaurb
[url=https://t.me/s/dostavka_alcoholmsk]доставка алкоголя не дорогого[/url]
博客作者 Kuphdaurb
[url=https://t.me/s/dostavka_alcoholmsk]доставка алкоголя и сигарет в москве[/url]
博客作者 Juliuspal
Misuse consequences detailed. Find pill info.
[url=https://mexicopharmacy.top/#]viagra online pharmacy[/url]
Access medicine details. Drug essentials explained.
博客作者 Leonztper
Чтобы делать ставки на спорт с максимальным удобством, вам стоит [url=https://skachat-prilozhenie-leon.ru/]скачать Леон бет[/url]. Это приложение от известного букмекера доступно на официальном сайте и поддерживает все основные функции.
博客作者 Battlepassartit
Политика конфиденциальности BattlePass охватывает все аспекты обработки персональной информации пользователей, касающейся использования услуг и сайтов компании. BattlePass получает, хранит и обрабатывает данные, включая личную информацию, необходимые для обеспечения функционирования сервисов. Важным моментом является то, что BattlePass может получать данные не только непосредственно от пользователей, но и от своих партнеров — организаций, чьи сервисы или рекламные материалы могут использоваться в процессе взаимодействия с BattlePass. Передача информации осуществляется в соответствии с законодательством и на основании специальных соглашений.
Основная цель данной Политики заключается в защите личных данных пользователей и обеспечении их конфиденциальности. Все действия по обработке персональной информации строго соответствуют нормам международного права и законодательству стран СНГ и ЕС, включая обязательные требования регламента GDPR. Пользователям подчеркивается, что в случае изменения условий Политики, они будут проинформированы, а также будет запрошено их согласие, если это необходимо.
BattlePass собирает различные виды персональных данных, которые могут включать информацию о пользователе, необходимую для создания учетной записи, адреса электронной почты, а также данные, касающиеся транзакций и взаимодействия с другими пользователями и сервисами. Это позволяет компании эффективно обслуживать клиентов, а также адаптировать свои предложения к требованиям рынка и предпочтениям пользователей. Учетная запись пользователя является важной частью механизма, позволяющего обеспечить безопасность и доступ к услугам.
Нужно отметить, что пользователи имеют право в любое время обратиться в BattlePass по вопросам реализации своих прав, касающихся обработки их данных, а также подать жалобы на некорректность или незаконную обработку их персональной информации. Для этого предусмотрены формы обратной связи на сайте, а также указаны контактные данные для связи по электронной почте.
Политика конфиденциальности BattlePass также подразумевает возможность внесения изменений в условия использования сервисов, что может отражаться на правовых аспектах обработки персональных данных. В случае возникновения новых условий, касающихся приватности, пользователи будут предупреждены, что подчеркивает открытость и прозрачность компании в вопросах, связанных с безопасностью персональной информации. Таким образом, BattlePass стремится создать безопасное и комфортное окружение для своих клиентов, следуя лучшим практикам в области защиты данных и конфиденциальности.
[url=https://battlepass.ru/info/privacypolicy]Политика конфиденциальности[/url]
博客作者 Ronnienow
Кайт сафари Египет — это уникальное приключение, которое соединяет активный отдых с захватывающими пейзажами древней цивилизации. Ветер, наполняющий паруса кайта, уносит вас в безбрежные просторы Красного моря, где кристально чистые воды переплетаются с яркими рифами, создавая идеальные условия для водных видов спорта [url=https://kitehurghada.ru/kajt-safari/]кайт сафари 2025[/url].
На протяжении сафари вы не только наслаждаетесь катанием, но и встречаете великолепные пляжи, напоенные солнечным светом. Каждая остановка открывает вам новые горизонты — от живописных бухт до безлюдных островов, каждый из которых имеет свою уникальную экосистему.
Профессиональные инструкторы сопровождают вас на протяжении всего путешествия, делясь знаниями о технике кайтсерфинга и секретах местных ветров. Вы погружаетесь в атмосферу дружбы и взаимопонимания, ведь кайт сафари — это не только спорт, но и общение с единомышленниками [url=https://kitehurghada.ru/kajt-safari/]илья любимов кайт сафари[/url].
Египет, с его богатой историей и культурным наследием, становится идеальным фоном для таких незабываемых мгновений. Путешественники уносят с собой не только яркие воспоминания, но и жажду новых открытий на просторах этого уникального мира. https://kitehurghada.ru/kajt-safari/
博客作者 blealabop
[url=https://promokody-letual.ru/realnie-dengi/kivi-na-bitkoin-ot-1000.html]киви на биткоин от 1000[/url] [url=https://promokody-letual.ru/igri/igri-na-pk-s-viborom-deystviy.html]игры на пк с выбором действий[/url] [url=https://promokody-letual.ru/pin-up/pin-up-casino-zerkalo.html]pin-up casino зеркало[/url] [url=https://promokody-letual.ru/1hbet/shtraf-esli-inostranniy-grazhdanin-ne-prozhivaet-po-mestu-registratsii.html]штраф если иностранный гражданин не проживает по месту регистрации[/url] [url=https://promokody-letual.ru/dengi/igri-v-kotorih-mozhno-zarabotat-dengi.html]игры в которых можно заработать деньги[/url] [url=https://promokody-letual.ru/map200.html]sweet bonanza играть на деньги[/url] [url=https://promokody-letual.ru/besplatno/slot-machines-book-of-ra.html]slot machines book of ra[/url] [url=https://promokody-letual.ru/rabochee-zerkalo/riobet-rabochee-zerkalo-na-segodnya.html]риобет рабочее зеркало на сегодня[/url] [url=https://promokody-letual.ru/onlayn/igrat-v-igrovie-avtomati-onlayn.html]играть в игровые автоматы онлайн[/url] [url=https://promokody-letual.ru/pin/kak-poluchit-promokod-v-pin-ap.html]как получить промокод в пин ап[/url] [url=https://promokody-letual.ru/casino/skachat-casino-x-na-android.html]скачать casino x на андроид[/url] [url=https://promokody-letual.ru/rossii/onlayn-bukmekerskie-kontori-v-rossii.html]онлайн букмекерские конторы в россии[/url] [url=https://promokody-letual.ru/zerkalo/mostbet-zerkalo-na-segodnya.html]мостбет. зеркало. на. сегодня.[/url] [url=https://promokody-letual.ru/android/igri-s-vivodom-deneg-dlya-android.html]игры с выводом денег для андроид[/url] [url=https://promokody-letual.ru/onlayn/reyting-onlayn-kazino-s-litsenziey.html]рейтинг онлайн казино с лицензией[/url] [url=https://promokody-letual.ru/kartu/kak-vivesti-dengi-s-1win-na-kartu.html]как вывести деньги с 1win на карту[/url] [url=https://promokody-letual.ru/besplatno/book-of-ra-deluxe-igrat-besplatno.html]book of ra deluxe играть бесплатно[/url] [url=https://promokody-letual.ru/dengi/gde-mozhno-viigrat-dengi-bez-obmana.html]где можно выиграть деньги без обмана[/url] [url=https://promokody-letual.ru/rabochee-zerkalo/vavada-kazino-ofitsialniy-sayt-rabochee-zerkalo-segodnya.html]вавада казино официальный сайт рабочее зеркало сегодня[/url] [url=https://promokody-letual.ru/dengi/sayti-gde-mozhno-zarabotat-dengi-bez-vlozheniy.html]сайты где можно заработать деньги без вложений[/url]
博客作者 Gerardrhync
Nauseating earnestness can lead to heat-related illnesses such as vehemence exhaustion and heatstroke. Vulnerable populations list the hoary, young children, and individuals with chronic illnesses https://excessiveheatawareness.ru.
博客作者 Reodchind
[url=https://saleclonedcard.cvv2cvc.com]https://saleclonedcard.cvv2cvc.com[/url] Hacked Credit cards Shop Credit cards
Item 1 Card Total Balance: $3100 – Price $ 110.00
Item 3 Cards Total Balance $9600 – Price $ 180.00
Item PayPal Transfers $500 – Price $ 49.00
Item PayPal Transfers $ 2000 – Price $ 149.00
Item Western Union Transfers $ 1000 – Price $ 99.00
Item Western Union Transfers $ 300 – Price $ 249.00
*Prices on the website may vary slightly
[url=https://salecloned-cards.cvv2cvc.com]https://salecloned-cards.cvv2cvc.com[/url] Shop Credit cards Buy Cloned cards prepaid
博客作者 boomerang bet
Are you ready to feel the rush of winning big? [url=https://judgeacademy.com/events/boomerang-bet-slots-hauptpreise-entdecken-sie-deutsche-klassiker/]boomerang bet casino[/url] is where your dreams turn into reality! Imagine spinning the reels on your favorite slots and landing that life-changing jackpot. This isn’t just any casino; it’s a place where excitement meets safety. Fully licensed and secure, Boomerang Bet ensures every game is fair and every win is yours to keep. With lightning-fast deposits, your next thrill is just moments away. Dive into the action and let Boomerang Bet show you what real excitement feels like!
博客作者 Juliuspal
Find pill info. Drug guide provided.
[url=https://mexicopharmacy.top/#]cvs online pharmacy[/url]
Medication facts provided. Latest medicine developments.