添加自定义注解
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,292 条评论
博客作者 Jamesknike
Познакомьтесь с нашим проф коллективом, яже строит чудесную мебель, воплощая ваши мечтания в течение реальность https://www.cehitae2kuhnishki.ru.
博客作者 Jamesknike
Познакомьтесь кот нашим профессиональным коллективом, который учреждает уникальную этажерка, воплощая ваши мечты на реальность https://cehitae2kuhnishki.ru/.
博客作者 viagra generic canadian pharmacy
I do not know if it’s just me or if everyone else encountering problems with your site. It looks like some of the text within your content are running off the screen. Can someone else please provide feedback and let me know if this is happening to them as well? This might be a problem with my internet browser because I’ve had this happen previously. Many thanks
博客作者 Jamesknike
Познакомьтесь с нашим профессиональным коллективом, яже созидает чудесную мебель, воплощая ваши мечтания в явь https://www.cehitae2kuhnishki.ru/.
博客作者 Vlopfavi
Готовые коттеджные дома Ижевск нк18.рф
Проектируем и создаем дома и посёлки в Ижевске и области уже свыше двенадцати лет. Регулярно проводим работу над ошибками и улучшаем дома, для максимально комфортного проживания. Скорее звоните нам +7(929)276-00-53 или заходите на веб сайт нк18.рф за подробной информацией.
Относительно [url=https://xn--18-1lcl.xn--p1ai/]одноэтажный дом из газобетона[/url] мы Вам поможем. Строим лучшие дома в области, о чем подтверждают наши довольные обладатели домов. Также сами члены компании живут в созданных нами домах, что даёт нам приобретать действительные отзывы. У нас возможно заказать строительство как единого дома, так и целого поселка. Также существуют в продаже уже готовые предложения для внезапного переезда.
Длительное время-один из главных минусов заселения в загородный дом. Сейчас большое количество домов замораживаются без отделки и жильцов, так как цены неожиданно выросли, возможностей стало меньше, а сложностей гораздо больше. Представленные дома не вырастут в стоимости за момент строительства, обычно это время насчитывает 6-8 месяцев. Также на сайте нк18.рф действует сельская ипотека и рассрочка на первоначальный взнос, для тех, кому это поможет.
Чтобы найти [url=https://xn--18-1lcl.xn--p1ai/]застройщик готовых домов ижевск[/url] недорого, то это к нам. Можете также найти определенный земельный участок под будущее строительство. Познакомьтесь с лучшим предложением месяца-дом за 4900000 рублей в оснащении «продумано всё». Данная фирма находится по адресу: г. Ижевск, ул. Береговая, д. 1 и ждет определенно Вас в качестве счастливых заказчиков.
博客作者 Tolikjram
Ищете сервис? Ознакомьтесь с рекомендациями по [url=https://inetof.ru]ремонт погрузчиков[/url] и узнайте, как оперативно организовать ремонт вашей техники.
博客作者 أنابيب HDPE
uPVC Pipes : Unplasticized PVC pipes are rigid and strong, used in various infrastructure projects. ElitePipe Factory in Iraq is a leading supplier of uPVC pipes.
博客作者 panacea pharmacy
Every weekend i used to pay a quick visit this web site, as i want enjoyment, since this this web site conations actually nice funny material too.
博客作者 Poiribor
Промышленное оборудование nkpribor.ru
Более 10-ти лет организация "НК Прибор" осуществляет работу по всей РФ, поставляя b2b комплексные поставки оборудования неразрушающего контроля и измерения, геодезическое оборудование, оптические приборы и подобное. У нас работают лишь настоящие профессионалы своего дела, имеющие большой положительный опыт в сфере работы.
По вопросу [url=https://nkpribor.ru/id/refraktometr-abbe-nar-2t-hi-7049.html]рефрактометр аббе[/url] Вы на правильном пути. Предлагаем огромный спектр услуг по неразрушающему контролю. Это: визуальный контроль, вихретоковый контроль, капиллярный контроль, контроль температуры, магнитный контроль, твердомеры, толщинометрия и другое. Также в продаже имеется геодезическое оборудование: геодезические GNSS приемники, контролеры для приемника, квадрокоптеры, металлоискатели, рулетки измерительные, трассопоисковое оборудование и подобное.
По любому вопросу переходите на сайт nkpribor.ru или по номеру телефона +7(3412)277-001. Данная компания расположена по адресу: г. Ижевск, ул. Красногеройская, д. 107. Но мы осуществляем работу по всей Российское Федерации, доставка происходит разными методами и в самые быстрые сроки, узнайте о них у нашего консультанта.
Если Вы планировали найти [url=https://nkpribor.ru/id/izmeritel-soprotivleniya-zazemleniya-megeon-13121-10279.html]цена измерителя сопротивления заземления[/url] в сети интернет, то переходите на nkpribor.ru наш онлайн портал. Здесь много полезной информации о представленных продуктах и услугах. Мы являемся официальными представителями заводов-производителей и предлагаем продукцию по самым низким расценкам, а еще предоставляем гарантию.
博客作者 Andrewmoumb
[url=https://web-sollet.com/]Sollet.io[/url] – Solana wallet, Sollet.io wallet
博客作者 أنابيب الفولاذ المقاوم للصدأ
Lead Pipes : Historically used for water supply but now phased out due to health concerns. ElitePipe Factory in Iraq can provide safer alternatives to lead pipes.
博客作者 Jamesknike
Познакомьтесь не без; нашим проф коллективом, яже формирует уникальную этажерка, воплощая ваши грезы в течение реальность https://www.cehitae2kuhnishki.ru/.
博客作者 Jamesknike
Познакомьтесь с нашим проф коллективом, яже созидает уникальную мебель, воплощая ваши мечтания в течение явь https://www.cehitae2kuhnishki.ru.
博客作者 canadian pharmaceuticals for usa sales
Hey There. I found your blog using msn. This is a very well written article. I will be sure to bookmark it and come back to read more of your useful information. Thanks for the post. I will certainly return.
博客作者 Jamesknike
Познакомьтесь с нашим проф коллективом, который строит чудесную этажерка, воплощая ваши грезы в явь https://cehitae2kuhnishki.ru.