添加自定义注解
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,257 条评论
博客作者 online pharmacies in usa
Very good post! We will be linking to this great post on our site. Keep up the great writing.
博客作者 himchistka_elPl
Эффективная химчистка для матрасов премиум качества
Химчистка премиум матрасов – [url=https://www.himchistka-premium-matras.ru]https://www.himchistka-premium-matras.ru[/url] .
博客作者 Brandonvap
В 2024 году рынок скупки техники не прекращает эволюционировать учитывая новых технологий и потребительских предпочтений. Разглядим основные тренды, которые будут определять данную сферу.
С каждым годом все больше людей обращают внимание на экологические нюансы собственных покупок. Скупающие компании начинают внедрять программы по утилизации и переработке ветхой техники, что содействует понижению электронных отходов.
С ростом цен на новые устройства, покупатели регулярно выбирают поддержанную электронику. Это приводит к росту предложения на рынкее БУ, дозволяя людям отыскивать доброкачественную технику по более доступным ценам.
Онлайн-платформы для скупки техники становятся все более модными. Комфортные интерфейсы, резвый процесс оценки и возможность продажи онлайн веско упрощают жизнь пользователям.
Компании начали специализироваться на определенных категориях устройств, в том числе телефоны, ноутбуки либо игровые консоли. Это дает возможность более глубоко осознавать рынок и делать отличное предложение превосходнейшие условия нужным.
С возникновением новых технологий, в том числе искусственный ум и машинное обучение, процесс оценки состояния техники становится прытче и точнее, что позитивно сказывается на обслуживании клиентов [url=https://skupka-2024.ru]https://skupka-2024.ru[/url]
С изменениями в законодательстве, касающемся утилизации электроники, компании должны адаптироваться к новым требованиям. Это может стать как вызовом, так и возможностью для оптимизации бизнес-процессов.
Разные возрастные группы имеют свои предпочтения в отношении техники. Осознание этих различий поможет компаниям более отлично нацеливать свои рекламные кампании.
В 2024 году рынок скупки техники продолжит диверсифицироваться и адаптироваться к новым реалиям, что принесет как вызовы, так и новые способности для участников базара.
博客作者 Taylorwex
Pill facts available. Latest medicine news.
[url=https://imitrex2rp.top/#]purchase imitrex[/url]
Get drug details. Get details now.
博客作者 cialis generic pharmacy online
Hi there, after reading this amazing post i am too delighted to share my experience here with mates.
博客作者 Pashaswje
Хотите оформить заем не выходя из дома? Узнайте, как удобно [url=https://take-loan.ru]взять займ онлайн[/url] и получить средства без посещения офиса.
博客作者 canada pharmaceuticals online
It’s very straightforward to find out any matter on net as compared to books, as I found this article at this web page.
博客作者 canadian government approved pharmacies
Thanks for finally talking about > %blog_title% < Loved it!
博客作者 drugstore online
I like the helpful information you supply in your articles. I’ll bookmark your blog and take a look at once more here regularly. I am quite sure I’ll be informed plenty of new stuff proper right here! Best of luck for the next!
博客作者 ClarkWhifs
Свой магазин НашаМебель делает отличное предложение широченный прибор кухонь, какие помогут создать устроенность также удобство в вашем семействе https://notahye4kuhnishki.ru/.
博客作者 ClarkWhifs
Наш магазин НашаМебель зовет широченный набор кухонь, которые посодействуют сделать уют равным образом удобство в течение вашем таунхаусе https://www.notahye4kuhnishki.ru.
博客作者 ClarkWhifs
Отечественный магазин НашаМебель приглашает широкий коллекция кухонь, которые посодействуют сделать устроенность а также благоустроенность в течение вашем доме https://www.notahye4kuhnishki.ru.
博客作者 ClarkWhifs
Отечественный этношоп НашаМебель призывает широченный прибор кухонь, кои помогут создать уют и комфорт в течение вашем жилище https://www.notahye4kuhnishki.ru/.
博客作者 24 hour pharmacy
I relish, lead to I discovered just what I was taking a look for. You’ve ended my four day long hunt! God Bless you man. Have a great day. Bye
博客作者 ClarkWhifs
Отечественный этношоп НашаМебель делает отличное предложение широкий коллекция кухонь, какие помогут сделать устроенность а также удобство в течение вашем таунхаусе https://www.notahye4kuhnishki.ru.