添加自定义注解
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 | 28,588 条评论
博客作者 займ на карту без отказа
Нужен быстрый [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]займ на карту без отказа[/url]? Мы предлагаем более 40 предложений, которые отличаются гибкими условиями и высокой вероятностью одобрения. Все наши партнеры – проверенные МФО, что гарантирует безопасность и прозрачность сделки. Вы можете выбрать сумму и срок, который максимально соответствует вашим потребностям, а деньги поступят на карту практически мгновенно после одобрения.
博客作者 Gerardrhync
Excess fury can bring to heat-related illnesses such as vehemence exhaustion and heatstroke. Defenceless populations include the aged, puerile children, and individuals with chronic illnesses https://www.excessiveheatawareness.ru.
博客作者 canada pharmaceuticals online
I like what you guys are usually up too. This type of clever work and exposure! Keep up the amazing works guys I’ve added you guys to my blogroll.
博客作者 canada pharmaceuticals online
It’s really a cool and useful piece of info. I am satisfied that you just shared this useful information with us. Please keep us informed like this. Thanks for sharing.
博客作者 approved canadian online pharmacies
Wow, wonderful blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your website is great, let alone the content!
博客作者 pharmacy on line
This is my first time pay a visit at here and i am actually impressed to read all at one place.
博客作者 Lelandned
Полигон Экотоп в Рузе активно внедряет инновационные технологии и методы для улучшения процессов утилизации отходов [url=https://ekotop-mo.ru/]компания экотоп[/url]. Одним из ключевых направлений является внедрение системы раздельного сбора и переработки отходов, что позволяет значительно уменьшить объем захороняемых на полигоне отходов [url=https://ekotop-mo.ru/services/unichtozhenie-medotkhodov/]вывоз медицинских отходов класса б[/url].
Кроме того, на полигоне активно проводятся научные исследования и разработки, направленные на улучшение методов переработки и утилизации отходов [url=https://ekotop-mo.ru/services/utilizatsiya-pishchevykh-otkhodov/]утилизация просроченных пищевых отходов[/url]
. Это включает в себя использование нанотехнологий для очистки воды и почвы, а также разработку новых методов переработки биологических отходов. https://ekotop-mo.ru/
博客作者 canadian pharmaceuticals online shipping
You really make it appear so easy with your presentation but I to find this topic to be really something that I believe I would by no means understand. It seems too complex and extremely huge for me. I’m looking ahead on your next post, I will try to get the hold of it!
博客作者 canadian pharmaceutical companies
Its like you read my mind! You appear to know so much about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a little bit, but instead of that, this is fantastic blog. A great read. I’ll definitely be back.
博客作者 Pashaeeji
Хотите получить деньги прямо на карту? Ознакомьтесь с тем, как быстро [url=https://hzaim.ru]взять займ на карту[/url] и получить нужные средства.
博客作者 займ на карту без отказа
Если у вас плохая кредитная история, но срочно нужны деньги, на нашем сайте вы сможете найти [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]займ на карту без отказа[/url]. Более 40 проверенных МФО предоставляют микрокредиты до 30 000 рублей только по паспорту, без лишних проверок. Мы собрали лучшие предложения, чтобы помочь вам быстро решить финансовые вопросы. Эксперты также подготовили рекомендации по выбору микрокредитов, чтобы вы могли принять обоснованное решение и воспользоваться самыми выгодными условиями.
博客作者 займ на карту без отказа
Быстрый [url=https://all-credit.ru/zaim-bez-otkaza-na-kartu/]займ на карту без отказа[/url] – это реально! У нас на сайте вы найдете более 40 проверенных МФО, которые предоставляют микрокредиты до 30 000 рублей даже с плохой кредитной историей. Мы отобрали только надежные предложения, чтобы каждый мог выбрать то, что ему подходит. Кроме того, у нас есть полезные советы от экспертов, которые помогут вам разобраться в мире микрокредитов и сделать правильный выбор.
博客作者 canadian pharmaceuticals usa
Hey! I know this is sort of off-topic however I had to ask. Does managing a well-established website such as yours require a large amount of work? I’m brand new to blogging but I do write in my journal everyday. I’d like to start a blog so I will be able to share my own experience and feelings online. Please let me know if you have any recommendations or tips for new aspiring bloggers. Thankyou!
博客作者 JustinaNink
Мебельный щит это материал для строительства, который обширно используется в производстве мебели, отделке и строительстве. Он представляет собой изделие из древесины, состоящее из нескольких слоев, соединенных между собой при помощи клея или механических соединений. В данном посте будут рассмотрены, что такое мебельный щит, его превосходства и применение в различных сферах.
Что такое мебельный щит?
Мебельный щит изготавливается из брусков или фанеры и употребляется для создания плоских поверхностей. Он может состоять из различных древесных пород, что дает возможность получить желанные эстетические и многофункциональные качества. Размеры мебельных щитов могут варьироваться в зависимости от требований проекта.
Преимущества мебельного щита
Применение мебельного щита
Мебельные щиты находят [url=https://35stupenek.ru/mebelnyj-shchit]кованые элементы леруа мерлен[/url] обширное применение в разных областях, включая:
Заключение
Мебельный щит это универсальный и удобный материал, который находит обширное применение в мебельной промышленности и строительстве. Благодаря своим превосходствам, таким как устойчивость к деформации, экологичность и экономичность, он становится все более востребованным посреди производителей и потребителей. Если вы планируете создать или обновить мебель, мебельный щит готов стать хорошим выбором для вашего проекта.
博客作者 kottGearo
[url=https://t.me/unlimofficialzerkalo]анлим казино[/url]
[url=https://t.me/unlimofficialzerkalo]unlim casino[/url]
[url=https://t.me/aufcasinozerkalo]auf casino[/url]
[url=https://t.me/aufcasinozerkalo]ауф казино[/url]
[url=https://t.me/unlimofficialzerkalo]unlime casino[/url]
https://t.me/unlimofficialzerkalo
[url=https://t.me/aufcasinozerkalo]ауф casino онлайн промокод[/url]
https://t.me/aufcasinozerkalo
[url=https://t.me/unlimofficialzerkalo]unlim рабочее зеркало[/url]
https://t.me/unlimofficialzerkalo
[url=https://t.me/aufcasinozerkalo]ауф casino слоты зеркало[/url]
https://t.me/aufcasinozerkalo
[url=https://t.me/unlimofficialzerkalo]unlim casino официальный сайт вход в личный[/url]
https://t.me/unlimofficialzerkalo