添加自定义注解
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,241 条评论
博客作者 canada pharmaceuticals online generic
Right here is the right webpage for anyone who hopes to find out about this topic. You know so much its almost tough to argue with you (not that I really will need to…HaHa). You definitely put a new spin on a subject that’s been discussed for a long time. Excellent stuff, just great!
博客作者 CharlesBunty
Get pill facts. Drug trends described.
[url=https://medsonline365.top/#]mexican online pharmacy[/url]
Get medication facts. Drug resource available.
博客作者 обработка от блох
Дезинфекция помещений от вредителей dezinfekciya-mcd.ru
Чтобы купить услугу [url=https://dezinfekciya-mcd.ru/unichtozhenie/gryzuny/]обработка от грызунов[/url] позвоните нам. Насекомые или опасные грызуны могут зародиться почти в любых помещениях, не только на старых покинутых участках. Мы занимаемся: уничтожением тараканов и блох, удалением плесени, дератизацией мышей, уничтожением ос и шершней, комаров, короеда, отлов кротов и многим другим. По всем этим вопросам обращайтесь незамедлительно в нашу организацию.
博客作者 canada pharmaceuticals online
What’s up all, here every one is sharing such experience, thus it’s good to read this webpage, and I used to pay a quick visit this webpage all the time.
博客作者 Tolikjjim
Чтобы обеспечить бесперебойную работу вашего погрузчика, ознакомьтесь с рекомендациями по [url=https://forstwoof.ru]ремонт и обслуживание погрузчиков[/url]. Это поможет вам избежать поломок.
博客作者 canadian pharmaceuticals online safe
Right here is the perfect blog for anybody who hopes to find out about this topic. You understand so much its almost tough to argue with you (not that I really would want to…HaHa). You certainly put a brand new spin on a subject that’s been discussed for years. Wonderful stuff, just great!
博客作者 aarp recommended canadian pharmacies
Highly descriptive post, I loved that a lot. Will there be a part 2?
博客作者 дезинфекция от тараканов цена
Обработка помещений от насекомых и грызунов dezinfekciya-mcd.ru
Чтобы оформить услугу [url=https://dezinfekciya-mcd.ru/unichtozhenie/klopov/]уничтожение клопов[/url] позвоните нам. Насекомые или опасные грызуны могут образоваться практически в любых помещениях, не только на старых пустующих участках. Мы занимаемся: уничтожением тараканов и клопов, удалением запахов, дератизацией мышей, уничтожением ос и шершней, комаров, муравьев, отлов кротов и многим другим. По всем этим вопросам звоните прямо сейчас в нашу компанию.
博客作者 Davidpex
The Paralympic Games are an international multi-sport outcome in the service of athletes with disabilities. Held alongside the Olympic Games, these games facet a discrete series of sports adapted to various abilities. They were established to provide opportunities for athletes with man and mental impairments to clash at the highest supine and exhibit their implausible talents https://paralympicgames2024.ru/.
博客作者 online pharmacies in usa
I’m impressed, I must say. Seldom do I come across a blog that’s equally educative and entertaining, and without a doubt, you have hit the nail on the head. The problem is something too few people are speaking intelligently about. I am very happy I stumbled across this during my hunt for something regarding this.
博客作者 обработка квартиры от тараканов
Обработка участков от клещей dezinfekciya-mcd.ru
Чтобы заказать услугу [url=https://dezinfekciya-mcd.ru/tarakan/]дезинфекция от тараканов москва[/url] позвоните нам. Неприятные насекомые или опасные грызуны могут образоваться практически в любых пространствах, не только на старых пустующих участках. Мы промышляем: уничтожением тараканов и клопов, удалением плесени, дератизацией мышей, уничтожением грызунов, моли, муравьев, отлов змей и многим другим. По всем этим вопросам обращайтесь в любое время в нашу компанию.
博客作者 Toliktvck
Если ваш погрузчик нуждается в профессиональном ремонте, узнайте, как эффективно выполнить [url=https://inetof.ru]ремонт амкодор[/url] с гарантией качества.
博客作者 canadian pharmaceuticals
hello!,I really like your writing very much! proportion we communicate extra approximately your post on AOL? I require a specialist in this space to resolve my problem. May be that’s you! Taking a look forward to see you.
博客作者 apollo pharmacy online
Wow, fantastic blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your site is great, as well as the content!
博客作者 cheap pharmacy online
Hi to every one, because I am in fact keen of reading this web site’s post to be updated daily. It contains good data.