添加自定义注解
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,563 条评论
博客作者 Toliklvuu
Сломался погрузчик? Узнайте, как надежно выполнить [url=https://amkodor-remont.by]ремонт погрузчика амкодор[/url] с гарантией и в кратчайшие сроки.
博客作者 MelvinJug
[url=https://musk-empire.com/]Musk Empire Биржа[/url]
Р’ Mask Empire Сѓ вам есть чертова гибель полномочий чтобы заработка! Через пропустите шансище прирастить СЃРІРѕР№ РґРѕС…РѕРґ: • Тапайте, чтобы получать первые монеты Рё пуститься близкое экспедиция РїРѕ РёРіСЂРµ. • Выполняйте повседневные задачи, чтоб приобретать монеты также совершенствовать СЃРІРѕСЋ империю. • Развивайте СЃРІРѕРё навыки, чтобы увеличить харч равным образом распечатывать новые возможности. • Рграйтесь РІ Трактация также одолевайте, чтоб получать хоть чище монет. Раскройте чтобы себя РјРёСЂ Cover Empire также освойте РІСЃРµ евонный тайны!
https://www.musk-empire.com/
博客作者 canada pharmaceuticals
Do you mind if I quote a few of your posts as long as I provide credit and sources back to your weblog? My blog site is in the very same niche as yours and my visitors would certainly benefit from a lot of the information you provide here. Please let me know if this alright with you. Many thanks!
博客作者 list of canadian pharmaceuticals online
Hi there would you mind letting me know which hosting company you’re using? I’ve loaded your blog in 3 completely different web browsers and I must say this blog loads a lot faster then most. Can you recommend a good web hosting provider at a fair price? Many thanks, I appreciate it!
博客作者 JesseBouct
Отдых и развлечения занимают одно из важнейших мест в человеческой жизни. Наверное, практически невозможно найти такого человека, который бы отказался от предложения отвлечься на время от напряженных будней, расслабиться и отдохнуть. Естественно, существуют различные варианты отдыха, и каждый вправе сам выбирать наиболее подходящий. Для множества людей в разных уголках планеты наилучшим отдыхом являются игры.
Общество и игры
Тот факт, что игры появились еще на заре развития человеческого общества, не вызывает ни у кого ни малейшего сомнения.
Азартные игры предположительно появились тогда, когда у человека стало появляться свободное время, конечно сейчас азарт представляет собой некую другую форму, но это не сделало азартные игры менее популярными.
Многообразие различных игр свидетельствует о том, что люди стремились разнообразить свою жизнь, получать от них не только практические навыки и умения, но и удовольствие. Недооценивать развивающее и прогрессивное значение игр совершенно невозможно, ведь это противоречит самой человеческой природе.
Новая игровая эра
Азарт является одним из самых ярких человеческих чувств, вызывающих целую гамму различных эмоций. Что и говорить, игры, в основе которых лежит азарт, не теряют своей популярности и по сей день.
Целый бум произошел с появленем так называемых слотов, игровых автоматов. Они появлялись в разных заведениях по одному два и быстро завоевали свою популярность, а предприимчивые люди собрали все игровые автоматы в казино.
С появлением интернета и компьютеров, многие казино стали распространятся в онлайне.
Конечно, классические оффлайновые заведения никуда не делись, однако они в своем большинстве превратились в элитарные клубы, тогда как онлайн – казино, ввиду своей доступности, нарастили популярность и востребованность у геймеров.
Ниже представлены основные особенности казино онлайн:
доступность для всех и каждого в любое время суток;
чтобы играть достаточно иметь гаджет с выходом в интернет;
огромный выбор игр на любой вкус;
возможность сыграть в любом казино в любой стране мира;
большие выигрыши, колоссальное количество подарков бонусов и акций.
Главное для геймера – определиться с заведением, предлагающим наиболее выгодные условия и имеющим безупречную репутацию.
Современный игровой портал
Мы рекомендуем вам одно из самых проверенных казино оно уже покорило многие сеердца геймеров по всему миру и его популярность продолжает расти [url=https://vavada-casino-one.ru]вавада..[/url]
Здесь есть абсолютно любые игры на разные вкусы, даже самый искушенный геймер обязательно сможет удоволетворить своий поиск.
Основные преимущества интернет – казино "Vavada":
быстрые выплаты, приятные бонусы и подарки, регулярно проводимые акции;
качественная и оперативная техническая поддержка;
бездепозитные бонусы новичкам;
возможность сыграть в игру без делания ставок (демо – режим);
сто процентная анонимность;
легкость процесса регистрации.
Администрация всегда обновляет ассортимент игр.
博客作者 online pharmacies of canada
Good post. I learn something totally new and challenging on blogs I stumbleupon on a daily basis. It’s always interesting to read content from other writers and use a little something from their websites.
博客作者 cheap prescription drugs
I all the time emailed this website post page to all my associates, as if like to read it then my contacts will too.
博客作者 Tolikhzvg
Чтобы обеспечить бесперебойную работу вашего погрузчика, ознакомьтесь с рекомендациями по [url=https://inetof.ru]ремонт и обслуживание погрузчиков[/url]. Это поможет вам избежать поломок.
博客作者 DavidEliCa
Процедура основана на использовании лазера для изменения формы роговицы прозрачной части глаза, отвечающей за фокусировку света. В зависимости от типа нарушений, лазер повлияет на верхний слой роговицы, творя необходимые изменения для улучшения зрения.
Способы лазерной корректировки
Превосходства лазерной коррекции
Риски и противопоказания
Как и любая медицинская процедура, лазерная коррекция зрения имеет свои риски. Принципиально учитывать противопоказания, в том числе:
博客作者 canadian pharmaceuticals online
I needed to thank you for this fantastic read!! I definitely enjoyed every bit of it. I have got you book-marked to look at new things you post…
博客作者 canadian pharmaceutical companies
Howdy, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you stop it, any plugin or anything you can advise? I get so much lately it’s driving me crazy so any help is very much appreciated.
博客作者 walgreens pharmacy online
Hey there! I just wanted to ask if you ever have any problems with hackers? My last blog (wordpress) was hacked and I ended up losing many months of hard work due to no data backup. Do you have any solutions to protect against hackers?
博客作者 walmart pharmacy viagra
fantastic put up, very informative. I wonder why the opposite specialists of this sector do not notice this. You must proceed your writing. I’m sure, you’ve a great readers’ base already!
博客作者 online drugstore
Definitely believe that which you stated. Your favorite justification seemed to be on the internet the simplest thing to be aware of. I say to you, I certainly get irked while people consider worries that they just do not know about. You managed to hit the nail upon the top and defined out the whole thing without having side-effects , people can take a signal. Will probably be back to get more. Thanks
博客作者 cialis generic pharmacy online
Thank you for the good writeup. It in fact was a amusement account it. Look advanced to far added agreeable from you! However, how can we communicate?