添加自定义注解
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 | 23,351 条评论
博客作者 OlpraF
Hi!
Binary options trading on our platform offers endless opportunities to grow your wealth. Start with just $10 and earn returns of up to 200%. Benefit from real-time market analysis, an intuitive interface, and unrivaled security measures. Trade from anywhere, at any time, with 24/7 access. Join the smart investors already seeing success with our platform. Get started today!
Earn every minute without limit of $100, $500, $1,000, with a minimum bet of $1.
Instant withdrawal!!!
WARNING! If you are trying to access the site from the following countries, you need to enable VPN which does not apply to the following countries!
Australia, Canada, USA, Japan, UK, EU (all countries), Israel, Russia, Iran, Iraq, Korea, Central African Republic, Congo, Cote d’Ivoire, Eritrea, Ethiopia, Lebanon, Liberia, Libya, Mali, Mauritius, Myanmar, New Zealand, Saint Vincent and the Grenadines, Somalia, Sudan, Syria, Vanuatu, Yemen, Zimbabwe.
Sign up and start earning from the first minute!
https://trkmad.com/101773
博客作者 internet_klSl
Способы быстро подключить интернет на дачу
интернет на даче в подмосковье [url=https://internetnadachu.su/]https://internetnadachu.su/[/url].
博客作者 Brucedremi
nd_user – Nice Article! дёЄдєєзљ„е¦д№ зЅ‘ – дёЂдёЄиђЊж–°е°Џз«™ read this
Отличный подарок для любимой –
[url=https://pornopda.xyz/shop/seks_igrushki/vibratori/]купить вибратор для члена[/url]
Наслаждайтесь удовольствием вместе со своим партнером и не забудьте о его удовольствии с вибратором для члена.
[url=https://businesssnews.com/now-they-are-criticizing-desantis-for-the-climatic-changes-in-florida/#comment-5194]купить вибратор сосков[/url]
[url=https://bareandblanc.com/12-outfits-with-basics/#comment-45]купить автоматический мастурбатор pipidrem[/url]
[url=https://cherecaline.com/tatting-triangles/#comment-471]купить резиновый вибратор[/url]
[url=https://www.batorham.games/forum/pitannya-vidpovid/kupit-falloimitator-ekaterinburg/]купить фаллоимитатор екатеринбург[/url]
[url=https://www.billionstar.com/blog/uncategorized/hello-world/#comment-682]купить the handy мастурбатор[/url]
da72_0b
博客作者 buy likes and followers instagram
When I initially commented I seem to have clicked on the -Notify me when new comments are added- checkbox and now every time a comment
is added I get 4 emails with the exact same comment. Is
there a way you are able to remove me from that service?
Appreciate it!
博客作者 buy followers instagram free
My brother recommended I might like this web site. He was
entirely right. This post actually made my day. You cann’t
imagine simply how much time I had spent for this info!
Thanks!
博客作者 how can i buy followers on tiktok
It’s very effortless to find out any matter on web as
compared to textbooks, as I found this article at this website.
博客作者 is it ok to buy followers on instagram
Link exchange is nothing else but it is simply placing
the other person’s web site link on your page at suitable place and other person will also do similar
in favor of you.
博客作者 automatic instagram likes for your posts
It’s amazing to pay a visit this web page and reading the views of
all friends about this article, while I am also zealous of getting know-how.
博客作者 twicsy review
There is definately a great deal to learn about this subject.
I like all the points you made.
博客作者 Bali_zpsn
Find Beautiful Bali Villas For Sale
博客作者 Bali_znMn
Find the Perfect Bali Villa Today
博客作者 Bali_ytKi
Unique Bali Villas at an Affordable Price
博客作者 Bali_awka
Beautiful Bali Villas for sale
博客作者 Bali_mjki
Luxury Villas to Make You Feel at Home
博客作者 Bali_ccpi
Property in Bali for sale