添加自定义注解
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,389 条评论
博客作者 Velroagob
Самовольная перепланировка может вызвать много вопросов и проблем, но с нашей помощью вы легко сможете их решить. Наша компания предоставляет услуги по узакониванию перепланировок, гарантируя быстрое и безболезненное получение всех необходимых разрешений.
Если вы задумываетесь о том, [url=https://potolki-kitstroy.ru/]как узаконить самовольную перепланировку[/url], обращайтесь к нам. Мы позаботимся обо всех документах и взаимодействии с государственными органами. Доверьтесь нашим профессионалам и получите законное и безопасное пространство без лишних хлопот!
博客作者 Hacklink
Good info. Lucky me I reach on your website by accident, I bookmarked it. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Colinped
Find medication info. Latest medication updates.
[url=https://propecia365n.top]buy propecia no rx[/url]
Medication trends described. Medicine brochure provided.
博客作者 onwin
Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 price
[url=https://asynthroid.online/]synthroid prices[/url]
博客作者 PolgaNuh
Строительство готовых домов в Ижевске нк18.рф
Сегодня почти каждый мечтает о собственном доме. Да еще, чтобы строительство было мгновенным, чтобы лес рядом и пруд, и до города недалеко. Звучит, как в сказке, правда? А мы точно представляем как воплотить эту сказку в реальность! Представляем компанию нк18.рф в Ижевске, которая дарит осуществление такой фантазии за самые короткие сроки и по выгодным расценкам. Не верите? Убедитесь в этом самостоятельно, перейдя на наш веб ресурс за нужной информацией.
По вопросу [url=https://xn--18-1lcl.xn--p1ai/]проект дома монолит[/url] вы на верном пути. Здесь возможно купить и построить дом за период от 6 месяцев, взять ипотеку на благоприятных условиях, и не проиграть в средствах — цена по время строительства не изменится. Мы уже большое количество лет на рынке и имеем отличный опыт в архитектуре, кроме этого, всегда развиваемся, проходим обучения и стараемся быть лучше с каждым построенным домом. Дается увеличенная гарантия на кровлю, стены и фундамент.
Обращайтесь к нам за [url=https://xn--18-1lcl.xn--p1ai/]купить участок под ижс[/url] на любом этапе застройки. У Вас уже есть участок? Отлично, дом мы берем на себя. Определим все нюансы, предоставим советы от профессионалов по расположению. Участка нет? Мы предоставим Вам много различных вариантов, которые подойдут конкретно под Ваш спрос.
По всем вопросам звоните по номер телефона +7(929)276-00-53 или закажите обратный на сайте нк18.рф и мы Вам позвоним в ближайшее время. Находимся по адресу: г. Ижевск, ул. Береговая, д. 1. На представленном сайте есть отзывы тех, кто уже пользовался нашими услугами. Хотите быть в их рядах? Мы ждем и с удовольствием поможем Вам в исполнении мечты.
博客作者 cheap
[url=https://zithromaxl.online/]4 azithromycin cream[/url]
博客作者 online
[url=https://flomaxms.com/]flomax over the counter drug[/url]
博客作者 Colinped
Latest pill news. Get medicine facts.
[url=https://propecia365n.top]propecia online[/url]
Pill impacts described. Find medicine information.
博客作者 price
[url=https://diflucanr.com/]diflucan pill for sale[/url]
博客作者 tablets
[url=https://lyricamd.com/]lyrica capsules 75 mg cost[/url]
博客作者 PolgaNuh
Строительство готовых домов в Ижевске нк18.рф
Обращайтесь к нам за [url=https://xn--18-1lcl.xn--p1ai/]купить участок[/url] на любом этапе застройки. У Вас уже имеется загородный участок? Прекрасно, дом мы построим. Выявим все нюансы, дадим рекомендации от профессионалов по планировке. Участка пока нет? Мы предоставим Вам несколько разных вариаций, которые смогут подойти именно под Ваш запрос.
博客作者 online
[url=https://lyricamd.com/]lyrica over the counter[/url]
博客作者 Colinped
Read about medications. Medication trends described.
[url=https://propecia365n.top]propecia cheap[/url]
Complete pill overview. Patient medicine guide.
博客作者 order
[url=https://lasixtbs.com/]buy furosemide online[/url]