添加自定义注解
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,535 条评论
博客作者 ceylon cinnamon perks
Valuable information. Fortunate me I discovered your web site by accident, and I am
shocked why this accident didn’t came about in advance!
I bookmarked it.
博客作者 canadian pharmaceuticals usa
It’s amazing designed for me to have a website, which is helpful designed for my knowledge. thanks admin
博客作者 canadian pharmaceuticals online shipping
Great site you have here but I was wondering if you knew of any message boards that cover the same topics talked about here? I’d really love to be a part of online community where I can get feed-back from other knowledgeable people that share the same interest. If you have any suggestions, please let me know. Thank you!
博客作者 LeonardMef
Latest medication updates. Latest medication developments.
[url=https://kamagraxl.top/#]order kamagra[/url]
Medicine trends available. Comprehensive pill overview.
博客作者 https://www.astrprok.ru/p_207.html
https://www.astrprok.ru/p_207.html
博客作者 24 hour pharmacy
Hmm is anyone else having problems with the pictures on this blog loading? I’m trying to figure out if its a problem on my end or if it’s the blog. Any feedback would be greatly appreciated.
博客作者 https://esthet.ru/wp-includes/wop/kak_rabotaet_zerkalo_vavada.html
It’s awesome to pay a visit this web site and reading the views of all mates on the
topic of this article, while I am also eager of getting know-how.
博客作者 Marquispam
Unlim casino live https://biznesoblast.com/files/pages/unlim_casino_live.html
博客作者 Займы до 100 тысяч рублей
Микрокредиты под 0% от более 40 лучших МФО предлагают выгодные условия для новых клиентов. Для оформления займа требуется только паспорт, именная банковская карта и возраст от 18 лет. Весь процесс проходит онлайн, что позволяет получить деньги максимально быстро. Этот вариант особенно привлекателен для тех, кто ищет финансовую помощь без дополнительных затрат. Анализ показывает, что такие предложения выгодны как для краткосрочных, так и для долгосрочных целей, позволяя клиентам оценить качество услуг МФО и принять решение о дальнейшем сотрудничестве.
[url=https://images.google.it/url?q=https://all-credit.ru/]займы на карту онлайн новые[/url]
[url=https://images.google.nu/url?q=https://all-credit.ru/]малоизвестные мфо предоставляющие займы онлайн[/url]
[url=https://maps.google.ee/url?q=https://all-credit.ru/]займ онлайн на карту без отказа новые мфо[/url]
[url=https://clients1.google.co.zw/url?q=https://all-credit.ru/]срочные займы без проверок[/url]
[url=https://ipv4.google.com/url?q=https://all-credit.ru/]новые займы на карту онлайн[/url]
博客作者 online pharmacy
continuously i used to read smaller articles that as well clear their motive, and that is also happening with this piece of writing which I am reading at this place.
博客作者 https://www.ballroom.ru/champ/index
https://www.ballroom.ru/champ/index
博客作者 cialis pharmacy online
Hey there would you mind stating which blog platform you’re working with? I’m planning to start my own blog soon but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I’m looking for something unique. P.S Sorry for being off-topic but I had to ask!
博客作者 pharmacy online prescription
Please let me know if you’re looking for a article author for your weblog. You have some really great articles and I believe I would be a good asset. If you ever want to take some of the load off, I’d love to write some articles for your blog in exchange for a link back to mine. Please blast me an e-mail if interested. Many thanks!
博客作者 discount pharmacies
I am sure this paragraph has touched all the internet visitors, its really really nice piece of writing on building up new blog.
博客作者 canadian pharmaceuticals
Good day! I could have sworn I’ve been to this web site before but after looking at a few of the posts I realized it’s new to me. Anyhow, I’m definitely pleased I came across it and I’ll be book-marking it and checking back regularly!