添加自定义注解
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,240 条评论
博客作者 Thomasbrata
[url=https://www.audipiter.ru/user/AMJeremy/]https://www.audipiter.ru/user/AMJeremy/[/url]
博客作者 MichaelNog
Наша компания «Сайт по мебели для кухни» захватывается организацией и перепродажей лучшей кухонной мебели. Автор предлагаем широкий ассортимент продукции, яже отвечает наиболее современным штампам да тенденциям дизайна https://www.sufebey8kuhnishki.ru.
博客作者 MichaelNog
Наша юкос «Сайт числом мебели для кухни» обучается основанием также перепродажей лучшей кухонной мебели. Наш брат предлагаем широкий коллекция продукции, который говорит наиболее прогрессивным стереотипам а также направленностям дизайна https://sufebey8kuhnishki.ru.
博客作者 MichaelNog
Наша юкос «Фотосайт числом мебели чтобы кухни» занимается основанием а также перепродажей лучшей кухонной мебели. Я предлагаем широкий номенклатура продукции, который отвечает наиболее сегодняшним штампам равным образом направленностям дизайна https://sufebey8kuhnishki.ru.
博客作者 samaradaurb
[url=https://t.me/s/night_samara]самара проститутки заказать[/url]
博客作者 samaradaurb
[url=https://t.me/s/night_samara]проститутки самара снять[/url]
博客作者 Kuphdaurb
[url=https://t.me/chekipro_rus/11]купить товарный чек[/url]
博客作者 Kuphdaurb
[url=https://t.me/s/chekipro_rus/5]чеки с ндс купить[/url]
博客作者 best canadian online pharmacies
Hi! I know this is kind of off topic but I was wondering if you knew where I could locate a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having difficulty finding one? Thanks a lot!
博客作者 pharmaceuticals online australia
You really make it seem so easy with your presentation but I find this matter to be really something that I think I would never understand. It seems too complicated and very broad for me. I’m looking forward for your next post, I will try to get the hang of it!
博客作者 tms
https://umcfbg-aknvfv.hdorg2.ru/
博客作者 現場兒童色情片
gurrr gurrrrrrrr gurrrrrrrrr tulumpa
博客作者 Brandonvap
В 2024 году рынок скупки техники продолжает эволюционировать с учетом новых технологий и потребительских предпочтений. Осмотрим главные тренды, которые будут определять данную сферу.
С каждым годом все больше людей обращают внимание на экологические нюансы собственных покупок. Скупающие компании начинают внедрять программы по утилизации и переработке старой техники, что способствует понижению электронных отходов.
С ростом цен на новые устройства, покупатели все чаще выбирают поддержанную электронику. Это приводит к росту предложения на вторичном рынке, позволяя людям обретать качественную технику по более легкодоступным ценам.
Онлайн-платформы для скупки техники становятся все более модными. Комфортные интерфейсы, быстрый процесс оценки и возможность реализации онлайн существенно упрощают жизнь пользователям.
Компании начали специализироваться на определенных категориях устройств, в том числе смартфоны, ноутбуки или игровые консоли. Это дозволяет более глубоко осознавать рынок и делать отличное предложение лучшие условия нужным.
С появлением новых технологий, в том числе искусственный интеллект и машинное обучение, процесс оценки состояния техники становится прытче и точнее, что позитивно сказывается на обслуживании клиентов [url=https://skupka-2024.ru]https://skupka-2024.ru[/url]
С переменами в законодательстве, касающемся утилизации электроники, компании обязаны адаптироваться к новым требованиям. Это может стать как вызовом, так и возможностью для оптимизации бизнес-процессов.
Разные возрастные группы имеют свои предпочтения касательно техники. Осознание этих различий поможет компаниям более отлично нацеливать свои маркетинговые кампании.
В 2024 году рынок скупки техники продолжит диверсифицироваться и адаптироваться к новым реалиям, что принесет как вызовы, так и новые способности для участников рынка.
博客作者 cialis generic pharmacy online
I really like your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for you? Plz answer back as I’m looking to construct my own blog and would like to know where u got this from. kudos
博客作者 grg
https://idkzbt-rhqjhs.hdorg2.ru/