添加自定义注解
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,257 条评论
博客作者 anwap puq
Anwap смотреть https://bit.ly/anwap-m-anwap-anwap-love-an-wap 208241311
博客作者 pharmaceuticals online australia
I could not refrain from commenting. Perfectly written!
博客作者 Arthurvot
Фотофабрика кашеварных гарнитуров в течение Санкт-петербурге – этто ваш надежный партнер в создании кухонных интерьеров. Автор этих строк специализируемся сверху разработке, фабрике равным образом аппарате первоклассных кашеварных гарнитуров, тот или иной сочетают в себе язык, работоспособность равным образом долговечность. Наша миссия – отдать посетителям личные заключения, построенные с учётом ихний пожеланий равно потребностей, чтоб всякая шакша таким образом уютным (а) также удобным пунктом для века равно творчества https://www.tivokya0kuhnishki.ru/.
博客作者 Arthurvot
Фотофабрика кухонных гарнитуров в течение Санкт-петербурге – этто чемодан фундаментальный участник в формировании кухонных интерьеров. Наша сестра специализируемся сверху разработке, производстве равным образом аппарате высококачественных кашеварных гарнитуров, тот или иной сочетают на себя стиль, работоспособность и долговечность. Наша предназначение – позволить посетителям персональные ответы, сделанные начиная с. ant. до учётом ихний пожеланий а также надобностей, чтобы любая шакша стало быть приятным также удобным местом чтобы жизни и еще творчества https://www.tivokya0kuhnishki.ru.
博客作者 pharmaceuticals online australia
It’s appropriate time to make some plans for the future and it is time to be happy. I have read this submit and if I could I desire to counsel you some fascinating things or tips. Perhaps you can write next articles referring to this article. I desire to learn more issues approximately it!
博客作者 Ritaxmag
If you want to order a unique signature, visit [url=https://custom-signature.ru]website[/url]. Here you will find all the services you need to get high quality results.
博客作者 Arthurvot
Фотофабрика кашеварных гарнитуров в С-петербурге – этто чемодан надежный участник в основании кухонных интерьеров. Наша сестра работаем сверху разработке, фабрике равным образом аппарате первоклассных кухонных гарнитуров, что соединяют в течение себе стиль, работоспособность и долговечность. Наша посланничество – дозволить посетителям отдельные решения, сделанные с учётом ихний пожеланий и необходимостей, чтоб любил кухня стало быть приятным также спокойным местностью чтобы жизни (а) также творчества https://www.tivokya0kuhnishki.ru/.
博客作者 cialis generic pharmacy online
Great post! We are linking to this great content on our website. Keep up the good writing.
博客作者 apteka-russia.ru
https://apteka-russia.ru
博客作者 Remont_stKt
Как вернуть жизнь старой кожаной мебели, практичные советы
Ремонт экокожи на диване [url=https://www.divan-kozha-remont.ru]https://www.divan-kozha-remont.ru[/url] .
博客作者 Remont_zpoi
Как вернуть красоту кожаной мебели: лайфхаки и рекомендации.
Ремонт кожи на диване [url=https://www.restavracya-kozhany-mebel.ru]https://www.restavracya-kozhany-mebel.ru[/url] .
博客作者 Chistka_ysei
Способы избавления от разнообразных загрязнений на кожаной мебели в домашних условиях, для сохранения идеального вида вашей мебели.
Чистка кожаной мебели на дому москва – [url=https://www.himchistka-kozhany-mebel.ru]https://www.himchistka-kozhany-mebel.ru[/url] .
博客作者 Himchistka_tcMa
Шаги по уходу за дорогими предметами интерьера.
Химчистка антикварной мебели – [url=https://www.himchistka-antique.ru/]https://www.himchistka-antique.ru/[/url] .
博客作者 canadian pharmaceuticals
Appreciating the time and effort you put into your blog and in depth information you present. It’s good to come across a blog every once in a while that isn’t the same unwanted rehashed material. Fantastic read! I’ve saved your site and I’m adding your RSS feeds to my Google account.
博客作者 Brandonrhymn
Корректировка планировки пространств в столице — это сложный процесс, который требует выполнение всех законодательных норм и регламентов. Когда вы решили изменить структуру жилья или рабочего пространства, необходимо согласовать соответствующее согласование. Сайт [url=https://lavka-zabor.ru/]lavka-zabor.ru[/url] предоставляет весь спектр услуг по оформлению изменений и помощи на всех этапах. Наши профессионалы обеспечат вам в кратчайшие сроки и без лишних хлопот утвердить проект с ответственными ведомствами.
Также, на [url=https://lavka-zabor.ru/]lavka-zabor.ru[/url] вы найдете полезную сведения о порядке грамотно оформить документы для узаконения изменений и избежать неудач. Мы занимаемся на обработке нетривиальных проблем, касающихся корректировкой планировочных решений, будь то жилая квартира или офис. С нашим участием оформление станет простым и удобным!