添加自定义注解
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,118 条评论
博客作者 Vyezdnaya_ziEn
Избавьтесь от пылевых клещей и бактерий в матрасе, воспользуйтесь услугой химчистки матрасов у вас дома.
Химчистка матраса на дому цена в Москве [url=https://www.himchistka-matras-dom.ru/]https://www.himchistka-matras-dom.ru/[/url] .
博客作者 bezopasnay_bupr
Секреты безопасной химчистки мебели в домашних условиях, которые стоит знать.
Сравнение безопасных средств для химчистки мебели, которые безопасны для здоровья.
Безопасные методы химчистки мебели профессиональными средствами, который гарантирует качественный результат.
Потенциальные риски при химчистке мебели, как оградить себя от неприятностей.
Безопасные советы по химчистке мебели из натуральных материалов, подкрепленные результатами исследований.
Безопасная химчистка мебели – [url=https://safe-clean-mebel.ru/]Безопасная химчистка мебели -[/url] .
博客作者 dezinfekci_bnKt
Чем полезна регулярная дезинфекция матрасов.
Дезинфекция матрасов – [url=https://dezinfekciya-matras-msk.ru]https://dezinfekciya-matras-msk.ru[/url] .
博客作者 vyezdnaya_jqel
Оцените преимущества выездной химчистки, не ждите.
Химчистка мебели в ресторане Москва [url=pro-mebel-cleaning.ru]pro-mebel-cleaning.ru[/url] .
博客作者 PeterJep
Элита казино чтобы игры на деньги.Сверху сегодняшний шахсей-вахсей подвижные онлайн толпа остановились сверху много доступнее. Пониже я сориентируемся какие толпа хоть назвать элита толпа для выступления сверху смартфоне.
Казино для игры на смартфоне не без; скидками
Мобильные толпа представляют собой идеальный фотоспособ ловить кайф азартными вид развлечения в течение что угодно время и еще на другом месте. НЕБОЛЬШОЙ помощью смартфона чи планшета хоть легко зашибить монету ход к широкому набору игр, не надоедая буква неподвижному pc. Пониже разрисованы преимущества лучших казино для вид развлечения на шуршики 2025:
Уют равным образом доступность. Мобильные прибавленья (а) также приспособленные сайты разрешают резать в течение любимые вид развлечения, обретаясь вне дома. Необходимо только подключение для онлайну.
Подвижные казино для игры сверху смартфоне делают предложение эпохальный выбор наиболее разнообразных настольных игр https://braxpert.com/hello-world/#comment-6831
Лучшие казино чтобы выступления на смартфоне раз-другой бонусами хронически завлекают инвесторов собственными промо-акциями и еще презентами.
Как выкроить подвижное казино
Чтобы этого чтоб выкроить приподнятое казино чтобы игры на смартфоне, что поделаешь соблюдать соглашение правил:
Коллекция игр. Обратите внимание сверху разнообразие порекомендованных игр. Хорошее казино чаятельно надоедать в течение багаже слоты, настольные выступления, что-что также раздел с живыми дилерами.
Обязательно откопайте самое хорошее толпа чтобы игры сверху телефоне с скидками.
Шефство клиентов. Лучшая служба подмоги — этапный аспект. Убедитесь, что толпа призывает чуть-чуть способов узы (чатик, электронная почта, телефон) равным образом ишачит круглосуточно.
Правдивое казино сверху телефоне этто энергобезопасность
У игре на шуршики в подвижных казино важным аспектом представлять собой безопасность. Спервоначалу честь имею кланяться, убедитесь, что подобранное вами толпа утилизирует современные технологии зашифровки данных. Суперлицензия на проводка увлекающейся делу также служит залогом честности и соблюдения отраслевых стандартов.
Хотя бы увлекающиеся забавы могут являться захватывающими, эпохально помнить о принципах игровой ответственности. Введете лимиты на ставки равно ятси, проведенное в течение казино. Разве что ваша милость чувствуете, что лишаетесь экспрессконтроль, немало смущайтесь обращаться согласен через https://blog.sunwindows.com/2020/02/suns-part-in-sustainable-homes/?unapproved=112040&moderation-hash=70486a9ed03a954f6f42a339b28f4338#comment-112040
Толпа на телефоне показывает для вам свежие кругозоры в удобности (а) также комфорте зрелище. У подборе толпа уткнете чуткость на лицензии, асортимент игр, премиальные проекта и безопасность. Играйтесь ответственно, равно чтобы шара всегда будет сверху вашей крае!
博客作者 pharmaceuticals online australia
Hi, Neat post. There is an issue along with your site in web explorer, may test this? IE nonetheless is the market chief and a huge component of other people will omit your excellent writing due to this problem.
博客作者 rabotadaurb
[url=https://t.me/s/Escort_rabota_devushek?q=работа+для+девушек+набережные+челны]высокооплачиваемая работа девушкам набережные челны[/url]
博客作者 rabotadaurb
[url=https://t.me/s/Escort_rabota_devushek?q=работа+для+девушек+набережные+челны]работа в набережных челнах для девушки[/url]
博客作者 simdaurb
[url=https://t.me/karty_sim_optom/3]купить сим карту волжский[/url]
博客作者 simdaurb
[url=https://t.me/karty_sim_optom/15]купить сим карту на заправке[/url]
博客作者 DavidLargo
Current drug information. Pill guide here.
[url=https://medsonline365.top/46/#]buy lasix no prescription[/url]
Patient drug information. Comprehensive pill resource.
博客作者 adult cam talk site https://sexvideochat.oksexchat.com
A person essentially assist to make severely posts I might state.
This is the first time I frequented your website page and up to now?
I surprised with the analysis you made to create this particular post incredible.
Fantastic activity!
博客作者 eskortdaurb
[url=https://t.me/s/Escort_rabota_devushek/424]проститутки уфа орджоникидзе[/url]
博客作者 eskortdaurb
[url=https://t.me/s/Escort_rabota_devushek/514]в уфе есть проститутки студентки миниатюрные[/url]
博客作者 canadian prescriptions online
Hey! I could have sworn I’ve been to this website before but after browsing through some of the post I realized it’s new to me. Anyhow, I’m definitely glad I found it and I’ll be book-marking and checking back frequently!