添加自定义注解
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,205 条评论
博客作者 ozempic tablets buy
[url=https://tadalafilu.online/]tadalafil generic 20mg[/url]
博客作者 semaglutide pill
[url=https://bestmedsx.online/]onlinepharmacytabs24 com[/url]
博客作者 valtrex 2 g
[url=https://valtrexid.com/]cheap valtrex 1000 mg[/url]
博客作者 best price for prednisone
[url=https://prednisoneiv.online/]prednisone price[/url]
博客作者 zithromax 250 mg canada
[url=https://azithromycinps.online/]azithromycin 260 mg[/url]
博客作者 where can i buy metformin online uk
[url=https://metformindi.online/]metformin price in india[/url]
博客作者 online shopping pharmacy india
[url=https://medicinesaf.online/]top online pharmacy india[/url]
博客作者 Inasovelit
Encountering a hacked Instagram account can be a distressing experience, but with the right approach, it’s possible to recover and regain control of your digital identity. Effective account recovery requires a strategic combination of proactive measures and adherence to best practices to ensure a successful restoration process. When faced with the challenge of recovering a hacked Instagram account, implementing these best practices is essential to expedite the recovery process and restore account functionality.
At Antiban Pro, we understand the urgency of recovering hacked Instagram accounts and offer comprehensive guidance to assist users in navigating through the recovery process effectively. Our platform provides valuable insights and practical tips to empower users to take decisive action and regain control of their accounts.
First and foremost, it’s essential to acknowledge the severity of the situation and act promptly to initiate the recovery process. Contacting Instagram’s support team, providing necessary verification details, and following up on the status of the recovery request are crucial steps to expedite the restoration process.
By leveraging Antiban Pro’s expertise, users can access invaluable resources and guidance on best practices for recovering hacked Instagram accounts. Our platform offers step-by-step instructions and actionable advice to help users navigate through the recovery process efficiently and effectively.
Furthermore, Antiban Pro emphasizes the importance of proactive measures to prevent future hacking incidents and safeguard account security. Implementing robust security protocols, such as enabling two-factor authentication and regularly updating passwords, is essential to protect against future breaches and maintain account integrity.
Don’t let a hacked Instagram account disrupt your online presence and compromise your personal information. With Antiban Pro’s guidance, you can navigate through the recovery process with confidence and restore your account to its rightful owner. Empower yourself to reclaim control of your digital identity and continue enjoying the benefits of being connected on Instagram with Antiban Pro today.
Antiban.pro – [url=https://antiban.pro/en/]how do i unlock facebook[/url]
博客作者 where to buy tadalafil in usa
[url=https://tadalafi.online/]canadian pharmacy cialis 20 mg[/url]
博客作者 prednisone 15 mg daily
[url=https://oprednisone.com/]prednisone canada[/url]
博客作者 Ficonelit
Feeling overwhelmed by the constant buzz of social media? It might be time to take a break and deactivate your Instagram account. Antiban Pro offers a safe and convenient solution to temporarily deactivate your account, giving you the breathing room you need.
Our platform streamlines the deactivation process, ensuring that your account is temporarily suspended without any complications. Whether you need a short break or want to step back from the digital world for a while, Antiban Pro has got you covered.
Why choose Antiban Pro? We prioritize user experience and security, ensuring that your personal information remains protected throughout the deactivation period. Your privacy is our top priority, and we take every precaution to safeguard your data.
Take control of your digital well-being and reclaim your time with Antiban Pro. Temporarily deactivate your Instagram account and enjoy a much-needed respite from the endless scroll. When you’re ready to return, simply reactivate your account hassle-free.
Don’t let social media overwhelm you. Trust Antiban Pro to help you take a step back and prioritize your mental health. Deactivate your Instagram account today and embrace the peace of mind you deserve!
Antiban.pro – [url=https://antiban.pro/en/]instagram login trouble[/url]
博客作者 GenellerClult
Сериал про космос – [url=https://sg-video.ru/]сериал звездные врата[/url]
博客作者 synthroid medication 175 mcg prices
[url=https://isynthroid.com/]cost of synthroid 88 mcg[/url]
博客作者 lisinopril 40 mg prices
[url=https://lisinoprill.com/]generic for prinivil[/url]
博客作者 semaglutide order
[url=https://pharmgf.online/]canada drugstore pharmacy rx[/url]