添加自定义注解
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,245 条评论
博客作者 MichaelNog
Наша компания «Сайт по мебели для кухни» занимается учреждением да реализацией лучшей кухонной мебели. Наш брат предлагаем широкий гарнитура продукции, яже парирует наиболее прогрессивным трафаретам (а) также тенденциям дизайна https://sufebey8kuhnishki.ru.
博客作者 MichaelNog
Наша компания «Фотосайт числом мебели чтобы кухни» занимается организацией равно продажей качественной кухонной мебели. Пишущий эти строки предлагаем широкий прибор продукта, который откликается самым сегодняшним шаблонам и тенденциям дизайна https://sufebey8kuhnishki.ru/.
博客作者 MichaelNog
Наша юкос «Фотосайт по мебели для кухни» забирается формированием и продажей лучшей кухонной мебели. Наша сестра делаем отличное предложение широкий круг продукта, который начинает говорить самым прогрессивным шаблонам и тенденциям дизайна https://www.sufebey8kuhnishki.ru.
博客作者 canadian drugs pharmacies online
Excellent blog here! Also your site loads up very fast! What web host are you using? Can I get your affiliate link to your host? I wish my website loaded up as fast as yours lol
博客作者 MichaelNog
Наша юкос «Сайт по мебели чтобы кухни» забирается созданием а также реализацией качественной кухонной мебели. Мы предлагаем широкий состав продукции, который начинает говорить самым сегодняшним эталонам и направленностям дизайна https://www.sufebey8kuhnishki.ru/.
博客作者 Kup2hdaurb
[url=https://t.me/rabotadljadevushek/]эскорт работа в москве отзывы[/url]
博客作者 Kup2hdaurb
[url=https://t.me/s/rabotadljadevushek/3]работа девушкам в красноярске эскорт[/url]
博客作者 RaymondPoige
Order visitors on the site [url=https://traftop.biz/]traftop.biz[/url] qualitatively. Traftop traffic exchange is efficient and completely white promotion of project
博客作者 MontyWek
Казино Вавада успело зарекомендовать себя как одно из популярных онлайн-казино на просторах интернета. Публикация ниже расскажет нам чем Vavada casino смогло завоевать такой высокий рейтинг среди игроков, и какие игровые возможности и характеристики оно дает своим игрокам.
Игровые автоматы и их максимальный ассортимент
Наличие богатого ассортимента игровых автоматов является одним из показателей популярности. Казино предлагает своим игрокам множество слотов, начиная от классических вариантов с тремя барабанами до современных видеослотов с увлекательными сюжетами и прогрессивными джекпотами. Все слоты и игры Vavada casino разработаны самыми известными и востребованными производителями в этой области.
Кроме того, игроки могут легко находить свои любимые игры благодаря удобной навигации и поиску по категориям. Казино также регулярно обновляет ассортимент игр, что позволяет игрокам всегда находить что-то новенькое и интересное.
Интуитивно понятный интерфейс
Интерфейс казино Вавада полностью ориентирован на игрока, для его комфортной игры и быстрым знакомством с функционалом сайта, даже ребенок сможет разобраться в самые короткие сроки.
Пользовательский интерфейс оптимизирован как для настольных, так и для мобильных устройств, благодаря чему игроки могут наслаждаться любимыми играми где угодно и в любое время.
Vavada casino и платежные системы
Казино Вавада учитывает потребности своих игроков и предлагает разнообразные методы ввода и вывода средств. Vavada casino поддерживает и обслуживает все типы существующих электронных кошельков [url=https://social4geek.com/story2557701/how-on-the-internet-gaming-is-becoming-a-social-lifeline]https://social4geek.com/story2557701/how-on-the-internet-gaming-is-becoming-a-social-lifeline[/url]
Транзакции и их безопасность также стоят на самом высоком уровне, любые данные ни при каких обстоятельствах не передаются третьим лицам.
Бонусы и акции для игроков
Рассказывая о Vavada casino нельзя не упомянуть о обширных бонусных программах и акциях для всех игроков. Новички могут рассчитывать на привлекательные приветственные бонусы, что делает первый опыт игры в казино максимально комфортным и выгодным. Кроме того, Вавада предлагает различные промоакции для регулярных игроков, которые могут включать бесплатные спины, кешбэки и различные турниры.
Бонусы увеличивают шансы на выигрыш и делают игровой процесс еще более увлекательным, поэтому регулярное участие в акциях может принести значительную выгоду.
Функционал службы поддержки
Казино Вавада заботится о своих пользователях и предоставляет им качественную службу поддержки. Игроки могут обратиться в службу поддержки через различные каналы, включая live-чат и электронную почту. Служба поддержки работает круглосуточно, что позволяет решать любые возникающие вопросы оперативно и эффективно.
博客作者 Taylorwex
Side effects listed. Access pill details.
[url=https://imitrex2rp.top/#]where buy imitrex[/url]
Access pill information. Medication impacts explained.
博客作者 Ritavzaq
Want to design electronic signature? Learn how to quickly [url=https://custom-signature.ru]create digital signature[/url] with our tools.
博客作者 canadian pharmaceuticals
Quality articles is the key to invite the viewers to go to see the web page, that’s what this website is providing.
博客作者 online pharmacy
Wonderful goods from you, man. I’ve understand your stuff previous to and you’re just extremely fantastic. I actually like what you have acquired here, really like what you’re saying and the way in which you say it. You make it enjoyable and you still care for to keep it smart. I can’t wait to read much more from you. This is actually a tremendous site.
博客作者 canada pharmaceuticals online generic
These are genuinely great ideas in about blogging. You have touched some fastidious factors here. Any way keep up wrinting.
博客作者 discount pharmacy
I blog quite often and I seriously appreciate your content. This article has really peaked my interest. I will bookmark your blog and keep checking for new details about once a week. I opted in for your RSS feed as well.