添加自定义注解
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,474 条评论
博客作者 medication
[url=https://enolvadex.online/]how to get tamoxifen[/url]
博客作者 Rubendidge
Hi there! [url=https://trustonlinepharmacy.shop/best-canadian-pharmacies-online.html]overseas online pharmacy no prescription[/url] great web page.
博客作者 Michealcam
Promotional codes instead of games are strange codes that can be tolerant of to earn numerous bonuses, discounts or other benefits in games. They are provided near occupation developers or sidekick companies and can be employed by both trendy players and long-time players.
Design promo codes can capitulate you access to clannish items, monogram upgrades, in-game currency coins, manumitted crystals, and more. Sometimes they can also be reach-me-down to move up the gameplay or capture additional features.
To use a promotional code, you as usual needfulness to participate in it into a bizarre greensward in the match or on the developer’s website. After this, you wish eat access to the bonuses provided during the code.
To muster up the latest promotional codes championing games, you can refer to the recognized plan channels on community 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://alcosystems.se/wp-content/pages/hellcase-codes-in-sweden-2024-best-bonus-codes-up-to-500-eur.html]HellCase promo code 2024[/url]
It is effective to muse on that promotional codes beget a fixed validity while, so establish secure they are up to age and take them on time. Also make inescapable you barely utility promo codes from trusted sources to avoid scams.
Overall, gaming promo codes are a consummate acquiesce to go to extra features and improvements in games, so don’t misconstrue the predictability to take betterment of them and recuperate your gaming experience.
博客作者 Olywchind
[url=https://sale-cloned-cards.cc]Store and shop cloned cards Tor Buy Cloned cards[/url]
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://saleclonedcards.link]Sale Credit cards Buy dumps card[/url]
博客作者 tablets
[url=https://amoxil.company/]amoxicillin 500mg price in usa[/url]
博客作者 Rubendidge
Hello there! [url=https://trustonlinepharmacy.shop/canadian-online-pharmacies.html]pharmacy technician course online free[/url] very good web page.
博客作者 promyshlen_uoEr
Передовой промышленный 3D сканер, подробное руководство по использованию.
Как выбрать лучший промышленный 3D сканер, плюсы и минусы.
Как увеличить эффективность производства с помощью 3D сканирования, лучшие практики.
Основы кибербезопасности для пользователей промышленных 3D сканеров, технические аспекты безопасности.
Современный подход к промышленному 3D сканированию, новые горизонты в применении.
промышленный 3d сканер [url=https://www.promyshlennyj3d-skaner6.ru]https://www.promyshlennyj3d-skaner6.ru[/url] .
博客作者 Vlaroadog
Центр коррекции зрения exci.ru
Оформите заявку на консультацию в указанный центр на веб ресурсе exci.ru уже сейчас. Вашему вниманию представлен центр коррекции зрения Экси, который расположен в городе Ижевск. Лучший центр в соотношении цена/качество, также многие процедуры осуществляются по медицинскому полису.
Если у Вас возникли проблемы со зрением, то момент настал чтобы навестить врача. У нас проводят приёмы настоящие профессионалы с большим опытом, которые непременно помогут решить Вашу задачу. Звоните по контактному телефону +7(3412)68-27-50 и задавайте любые вопросы.
По поводу [url=https://exci.ru/]операция на глаза[/url] мы Вам поможем. У нас большой спектр услуг: метод коррекции зрения суперласик, лазерная коагуляция сетчатки, оперативное лечение катаракты, лазерная дисцизия задней капсулы хрусталика, ортокератологические линзы, лифтинг век JETT PLASMA LIFT и многие другие. Обратитесь за профессиональной помощью к нашим специалистам.
Чтобы реализовать [url=https://exci.ru/]ижвижн[/url] приходите к нам. Мы расположились по адресу г. Ижевск, ул. Ленина, д. 101. Время работы с понедельника по пятницу с 9:00 до 16:00, после 16:00 можно посетить врача, заблаговременно оформив запись или по выходным.
Увы и ах, очень многие люди, даже сегодня, во времена новых технологий, не идут к докторам с изменением зрения. А все-таки сегодня новые технологии способны провести коррекцию всего за 1 день. Безоговорочно ходите на проверку и слушайте своих врачей, ведь чем раньше Вы обратитесь за помощью, тем скорее она будет оказана.
博客作者 generalnay_uborka_rskl
Генеральная уборка помещений в Санкт-Петербурге – Заказать клининг по доступной цене
генеральная уборка квартир [url=https://www.genuborka1.ru]https://www.genuborka1.ru[/url] .
博客作者 ресторан бистро
Кафе бистро Ижевск 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 the side of games are significant codes that can be used to receive diversified bonuses, discounts or other benefits in games. They are provided near encounter developers or pal companies and can be habituated to via both new players and long-time players.
Design promo codes can excess you access to exclusive items, characteristic untypical upgrades, in-game currency coins, free crystals, and more. Occasionally they can also be inured to to speed up the gameplay or capture additional features.
To from a promotional criterion criteria, you predominantly needfulness to join it into a special greensward in the game or on the developer’s website. After this, you will procure access to the bonuses provided close the code.
To bump into uncover the latest promotional codes for the purpose games, you can refer to the official event channels on community 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://www.superweb.de/idcard/pgs/index.php?duelbits-promo-code-in-germany-2024-best-bonus-codes-up-to-500-eur.html]bonus codes Duelbits Germany[/url]
It is effective to remember that promotional codes have a restrictive validity period, so up satisfied they are up to companion and take them on time. Also make sure you barely utility promo codes from trusted sources to avoid scams.
All-inclusive, gaming promo codes are a great behaviour pattern to get supplement features and improvements in games, so don’t fail to understand the predictability to put into effect drop of them and improve your gaming experience.
博客作者 Rubendidge
Hello! [url=https://trustonlinepharmacy.shop/canadian-online-pharmacies.html]pharmacy technician online class[/url] very good website.
博客作者 posle_remonta_uborka_bhEa
Уборка квартир после ремонта – чистота и порядок
клининговая уборка квартир после ремонта [url=remontuborka1.ru]remontuborka1.ru[/url] .
博客作者 online
[url=https://ciproo.online/]cipro price[/url]
博客作者 slotdemopgsoft2023.id
Its such as you learn my mind! You seem to understand so much approximately this, such as you
wrote the ebook in it or something. I think that you
simply can do with some p.c. to pressure the message house a little bit, but other than that, this is fantastic blog.
A great read. I will definitely be back.