添加自定义注解
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,246 条评论
博客作者 pharmacy drugstore online
Does your blog have a contact page? I’m having a tough time locating it but, I’d like to send you an email. I’ve got some suggestions for your blog you might be interested in hearing. Either way, great blog and I look forward to seeing it grow over time.
博客作者 Lexapadt
Ищете дополнительную информацию? Переходите на [url=https://megaevakuator.by]сайт[/url], где представлены все услуги для быстрого реагирования.
博客作者 canadian viagra
I every time emailed this blog post page to all my associates, for the reason that if like to read it after that my contacts will too.
博客作者 canadian pharmaceuticals usa
If some one desires to be updated with hottest technologies then he must be visit this website and be up to date everyday.
博客作者 AlbertJap
Продолжение https://chl-heli.ru/catalog/vilochnye-pogruzchiki/elektropogruzchiki/
博客作者 Brandonvap
В 2024 году рынок скупки техники не прекращает эволюционировать учитывая новых технологий и потребительских предпочтений. Рассмотрим основные тренды, которые будут определять данную сферу.
Из года в год все больше людей обращают свое внимание на экологические аспекты собственных покупок. Скупающие компании начинают внедрять программы по утилизации и переработке старой техники, что содействует понижению электрических отходов.
С ростом цен на новые устройства, покупатели регулярно выбирают поддержанную электронику. Это приводит к резкому увеличению предложения на вторичном рынке, дозволяя людям обретать качественную технику по более доступным ценам.
Онлайн-платформы для скупки техники становятся все более известными. Комфортные интерфейсы, быстрый процесс оценки и возможность реализации он-лайн значительно упрощают жизнь пользователям.
Компании начали специализироваться на определенных категориях устройств, таких как телефоны, ноутбуки либо игровые консоли. Это позволяет более глубоко понимать рынок и предлагать превосходнейшие условия нужным.
С возникновением новых технологий, таких как искусственный интеллект и машинное обучение, процесс оценки состояния техники становится резвее и точнее, что позитивно сказывается на обслуживании клиентов [url=https://skupka-2024.ru]https://skupka-2024.ru[/url]
С изменениями в законодательстве, касающемся утилизации электроники, компании обязаны адаптироваться к новым требованиям. Такое может стать как вызовом, так и возможностью для оптимизации бизнес-процессов.
Различные возрастные группы имеют свои предпочтения в отношении техники. Осознание этих различий поможет компаниям более эффективно нацеливать свои рекламные кампании.
В 2024 году рынок скупки техники продолжит диверсифицироваться и адаптироваться к новым реалиям, что принесет как вызовы, так и новые возможности для членов базара.
博客作者 canada pharmaceuticals
Oh my goodness! Incredible article dude! Thank you so much, However I am having issues with your RSS. I don’t understand the reason why I cannot join it. Is there anybody getting the same RSS problems? Anyone that knows the answer can you kindly respond? Thanks!!
博客作者 Jamesknike
Познакомьтесь вместе с нашим профессиональным коллективом, который создаёт уникальную мебель, воплощая ваши мечты на явь https://www.cehitae2kuhnishki.ru/.
博客作者 Jamesknike
Познакомьтесь с нашим профессиональным коллективом, яже создаёт уникальную этажерка, воплощая ваши мечтания в течение явь https://www.cehitae2kuhnishki.ru/.
博客作者 Jamesknike
Познакомьтесь с нашим профессиональным коллективом, который создаёт уникальную мебель, воплощая ваши мечты на явь https://www.cehitae2kuhnishki.ru.
博客作者 canadian pharmaceutical companies
I visited several web pages but the audio quality for audio songs current at this site is genuinely marvelous.
博客作者 Jamesknike
Познакомьтесь один-другой нашим проф коллективом, который образовывает уникальную мебель, воплощая ваши грезы в течение реальность https://www.cehitae2kuhnishki.ru.
博客作者 Jamesknike
Познакомьтесь маленький нашим проф коллективом, яже созидает чудесную мебель, воплощая ваши грезы на реальность https://www.cehitae2kuhnishki.ru.
博客作者 pharmacy online drugstore
I’m curious to find out what blog system you have been utilizing? I’m experiencing some small security issues with my latest site and I would like to find something more safe. Do you have any suggestions?
博客作者 Jamesknike
Познакомьтесь маленький нашим профессиональным коллективом, яже создаёт чудесную мебель, воплощая ваши грезы в явь https://www.cehitae2kuhnishki.ru.