添加自定义注解
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,444 条评论
博客作者 generic viagra online
Appreciating the time and effort you put into your site and in depth information you offer. It’s good to come across a blog every once in a while that isn’t the same unwanted rehashed information. Great read! I’ve bookmarked your site and I’m including your RSS feeds to my Google account.
博客作者 canadian pharmaceuticals online
Hey, I think your blog might be having browser compatibility issues. When I look at your blog site in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, excellent blog!
博客作者 canadian pharmaceuticals usa
An impressive share! I have just forwarded this onto a coworker who was doing a little homework on this. And he actually bought me breakfast due to the fact that I found it for him… lol. So let me reword this…. Thanks for the meal!! But yeah, thanx for spending time to discuss this subject here on your site.
博客作者 shoppers drug mart pharmacy
Hi there to all, how is all, I think every one is getting more from this web page, and your views are nice designed for new visitors.
博客作者 roulette spielen
Excellent goods from you, man. I have understand your
stuff previous to and you are just extremely excellent. I
actually like what you have acquired here, certainly like what you’re stating
and the way in which you say it. You make it entertaining and you still take care of to keep it smart.
I can’t wait to read much more from you. This is really a wonderful web site.
博客作者 generic viagra online
Hey there, You have done a great job. I will definitely digg it and personally recommend to my friends. I am sure they’ll be benefited from this website.
博客作者 pharmacy online cheap
Howdy, i read your blog from time to time and i own a similar one and i was just curious if you get a lot of spam feedback? If so how do you reduce it, any plugin or anything you can recommend? I get so much lately it’s driving me insane so any assistance is very much appreciated.
博客作者 aarp recommended canadian pharmacies
Link exchange is nothing else but it is only placing the other person’s web site link on your page at appropriate place and other person will also do similar in favor of you.
博客作者 Deteyling_aosl
Креативный подход к детейлингу в Москве, для неповторимой красоты.
Detailing center – [url=https://car-deteyling-msk.ru/]https://car-deteyling-msk.ru/[/url] .
博客作者 Jamesdom
Каспи Онлайн казино: Мир Азарта у Вас Дома
В последние годы азартные забавы в глобальной сети интернет становятся все более известными. Одним из ясных представителей этого сегмента рынка является Каспи Казино Онлайн. Этот виртуальный казино привлекает внимание игроков благодаря собственному обилию игр, удобству и высочайшей надежности.
Обилие Игр
Каспи Казино Онлайн предлагает широкий выбор игр, который удовлетворит как опытнейших игроков, так и новичков. В ассортименте можно найти:
Удобство и Доступность
Одним из главных превосходств Каспи Онлайн казино является его доступность. Игроки могут наслаждаться любимыми играми в любое время и в любом месте, используя мобильные устройства или ПК. Интерфейс платформы интуитивно понятен, а регистрация занимает всего несколько минут. Кроме того, поддержка разных языков и комфортные методы оплаты делают игру еще более комфортной.
Призы и Акции
[url=https://www.pcctampa.com/%D0%B1%D1%83%D0%B4%D0%BE%D1%80%D0%B0%D0%B6%D0%B0%D1%89%D0%B8%D0%B9-%D0%BF%D0%B5%D0%B9%D0%B7%D0%B0%D0%B6-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D0%BA%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE-5/]проверенные онлайн-казино с выводом денег казахстан[/url] завлекает новых игроков щедрыми бонусами и акциями. Это может быть приветственный приз выдвигать на первый депозит, бесплатные вращения в слотах или специальные предложения для неизменных клиентов. Постоянные акции дают возможность игрокам получать дополнительный выигрыш и продлить игровое время.
Безопасность и Надежность
Безопасность игроков первоочередная задача Каспи Казино. Платформа употребляет современные технологии шифрования для высокой защиты собственной и денежной инфы. Лицензия на ведение игорной деятельности гарантирует честность и прозрачность игр, что создает доверие среди юзеров.
Заключение
Каспи Казино Онлайн это образцовое место любителям азартных игр и тех, кто желает испытать удачу, не выходя из дома. С разнообразием игр, щедрыми призами и высочайшей ступенью безопасности, это казино привлекает внимание игроков всего мира. Однако, также как в любом азартном развлечении, важно помнить о мудром подходе к игре и ставках, чтоб наслаждаться процессом в полной мере и избежать негативных последствий.
博客作者 mexican pharmacies
I do agree with all the concepts you’ve presented to your post. They are really convincing and can definitely work. Still, the posts are too short for beginners. Could you please extend them a bit from next time? Thank you for the post.
博客作者 canadian pharmaceuticals
Magnificent goods from you, man. I’ve understand your stuff previous to and you are just too wonderful. I actually like what you’ve acquired here, really like what you are saying and the way in which you say it. You make it entertaining and you still take care of to keep it wise. I cant wait to read far more from you. This is really a tremendous website.
博客作者 canada pharmaceuticals online
Actually when someone doesn’t know afterward its up to other people that they will help, so here it takes place.
博客作者 canadian pharmaceuticals online safe
Wow, that’s what I was looking for, what a information! existing here at this web site, thanks admin of this site.
博客作者 canada drugs online
I like the valuable information you provide in your articles. I’ll bookmark your blog and check again here frequently. I’m quite certain I will learn plenty of new stuff right here! Good luck for the next!