添加自定义注解
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,562 条评论
博客作者 prescription
[url=https://ciproffl.online/]levaquin cipro[/url]
博客作者 drug
[url=https://tretinoineff.com/]retin a cream without prescription[/url]
博客作者 purchase
[url=https://lasixtbs.com/]lasix 10 mg price[/url]
博客作者 Donaldhaize
Hi there! [url=https://erectiledysfunctionpillsxl.com/#]what pharmacy in the uk sells motilium[/url] good website.
博客作者 Nathancoike
Эволюция онлайн-торговли спортивными тапками: от начала до теперешних тенденций
Онлайн-торговля кроссовками одна из самых модных категорий продуктов, которая перетерпела значительную эволюцию за последние десятилетия. С появлением Интернета и электронной коммерции, люди стали предпочитать покупки в онлайн магазинах весьза их удобства, ассортимента товаров и доступности круглосуточно.
Начало он-лайн-торговли [url=https://krossovki-onlajn.ru]https://krossovki-onlajn.ru[/url] спортивными тапками можно отнести к 1990-м годам, когда интернет только начал набирать популярность. Туда время маленькие онлайн магазины начали предлагать своим клиентам широкий выбор кроссовок разных брендов и моделей. С развитием технологий и появлением специализированных платформ для электронной коммерции, он-лайн-торговля кроссовками стала все более модной и удобной для покупателей.
С возникновением крупных маркетплейсов, таких как Amazon, eBay, и специализированных интернет-магазинов, предлагающих большой ассортимент кроссовок различных брендов и моделей, потребители смогут выбирать из огромного количества вариантов, сравнивать цены и свойства продуктов, читать отзывы иных покупателей.
Нынешние тенденции он-лайн-торговли спортивными тапками связаны с применением новых технологий, таких как искусственный интеллект, виртуальная реальность, и расширенная реальность, позволяющие с большой точностью подобрать кроссовки по размеру, цвету и стилю, но также творить уникальные покупательские опыты.
Кроме того, увеличилось количество брендов, которые продают свою обувь напрямую через онлайн-магазины, не завися от торговых посредников. Это позволяет потребителям иметь прямой доступ к самым свежим коллекциям и эксклюзивным моделям кроссовок.
Поэтому, он-лайн-торговля кроссовками продолжает эволюционировать, предлагая покупателям все более широкий выбор качественных и стильных продуктов, современные технологические процессы покупок и улучшенные сервисы доставки и возврата. Вкупе с тем, онлайн-торговля спортивными тапками сохраняет свою популярность и перспективы развития в будущем.
博客作者 RichardirOlo
Mostbet Casino is an online platform that offers a wide selection of gambling and entertainment for its users. In this article we will look at the main aspects of the Mostbet casino and what makes it so popular among gambling fans.
Mostbet Casino is a popular choice among gambling connoisseurs due to its variety of games, bonuses, ease of use and reliability. Whatever your gambling preferences, Mostbet Casino offers something for every player. 324rw4tt65
博客作者 Donaldhaize
Howdy! [url=https://erectiledysfunctionpillsxl.com/#]tegretol mexican pharmacy[/url] great web page.
博客作者 Bryangen
Hello!
Do you want to become the best SEO specialist and link builder or do you want to outpace your competitors?
[b]Premium base for XRumer[/b]
$119/one-time
Get access to our premium database, which is updated monthly! The database contains only those resources from which you will receive active links – from profiles and postings, as well as a huge collection of contact forms. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $38.
[b]Fresh base for XRumer[/b]
$94/one-time
Get access to our fresh database, updated monthly! The database includes active links from forums, guest books, blogs, etc., as well as profiles and activations. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $25.
[b]GSA Search Engine Ranker fresh verified link list[/b]
$119/one-time
Get access to our fresh database, updated monthly! The fresh database includes verified and identified links, divided by engine. Free database updates. There is also the possibility of a one-time purchase, without updating the databases, for $38.
[b]GSA Search Engine Ranker activation key[/b]
$65
With GSA Search Engine Ranker, you’ll never have to worry about backlinks again. The software creates backlinks for you 24 hours a day, 7 days a week. By purchasing GSA Search Engine Ranker from us, you get a quality product at a competitive price, saving your resources.
To contact us, write to telegram https://t.me/DropDeadStudio
博客作者 drug
[url=https://modafinilmip.online/]provigil online pharmacy uk[/url]
博客作者 Lahore escorts
With thanks, I enjoy this!|
博客作者 sale
[url=https://tadacip.store/]where to buy tadacip 20[/url]
博客作者 兒童色情
şırpa kuloan https://hacktr.net https://illegalcommunity.org https://illegalz.org
博客作者 Donaldhaize
Hi! [url=https://erectiledysfunctionpillsxl.com/#]mexican pharmacy no prescription needed[/url] good website.
博客作者 Sylviafaf
Roulette is more than just a game of chance; it’s a captivating experience that offers endless possibilities. Imagine the rush of placing your bet on red or black and watching the wheel spin in anticipation. Whether you’re a beginner or a seasoned player, roulette promises excitement and the chance to win big. Embrace the challenge, learn the strategies, and enjoy the thrill of this iconic casino game. Start your journey with [url=https://usacasinohub.com/roulette/]roulette table[/url] today and let the excitement of the wheel propel you towards unforgettable wins!
博客作者 RichardirOlo
Mostbet Casino is an online platform that offers a wide selection of gambling and entertainment for its users. In this article we will look at the main aspects of the Mostbet casino and what makes it so popular among gambling fans.
Mostbet Casino is a popular choice among gambling connoisseurs due to its variety of games, bonuses, ease of use and reliability. Whatever your gambling preferences, Mostbet Casino offers something for every player. 324rw4tt65