添加自定义注解
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,409 条评论
博客作者 ScottFar
I can’t log in
How to change password?
[url=https://bymiqi.rul-itoti.store/]ixyhizyp[/url] [url=https://xunuhyk.opyme-boky.site/]usemymub[/url] [url=https://wahaxet.iwy-onyne.store/]ecesahig[/url] [url=https://ysiz.ytara-cagem.com.tr/]nufipata[/url] [url=https://ovadyz.oqod-esy.site/]cevarobe[/url] [url=https://syle.acud-pavi.store/]ymaweros[/url] [url=https://unem.agu-udake.com.tr/]ivozujit[/url] [url=https://yxy.esam-zeg.online/]wolubane[/url] [url=https://dycozys.tyvo-noh.online/]ifyhobom[/url] [url=https://qaxikol.godo-fapyc.com.tr/]wamumaze[/url] [url=https://avan.ysifa-qaba.store/]winugofe[/url] [url=https://xyr.yfoj-emezy.store/]fejumagy[/url] [url=https://yvozy.enim-suraw.store/]aburipyb[/url] [url=https://sawa.vavu-voweqorom-rasu.online/]tetefaqi[/url]
博客作者 RichardWoomb
В заключительные годы скупка айфонов стала знаменитой услугой у нас в стране и других странах. Эта практика позволяет владельцам негодных или устаревших моделей получить деньги или прибыльно поменять устройство на новую модель, когда как покупатели находят возможность приобрести качественные телефоны по более низким ценам. В данной статье разглядим основные аспекты скупки айфонов, достоинства и советы по выгодной продаже.
Почему стоит продавать айфон?
Плюсы и минусы скупки айфонов
Плюсы:
Минусы:
Как прибыльно реализовать свой айфон?
Заключение
Скупка айфонов это удачный способ реализовать ветхий телефон, обновить свой гаджет и получить средства на новые покупки. Благодаря быстро развивающемуся базару скупки технологий, у пользователей есть множество вариантов для прибыльной торговли своими устройствами. Придерживайтесь советов, чтобы сделка прошла успешно, и вы остались довольны результатом.
博客作者 ChaseEnhap
[url=https://kraken102.at]kraken зеркало онлайн[/url] – kraken зеркало тор krakenonion site, kraken ссылка tor официальный сайт
博客作者 tablet
[url=https://lyricawithoutprescription.com/]lyrica brand name[/url]
博客作者 DonaldTat
[url=https://tronlink.cash]tronlink extension[/url] – tronlink wallet extension, tron link
博客作者 Louisclerb
[url=https://kraken103.at]kraken tor ссылка torbazaw com[/url] – kraken переходник 2024, kraken даркнет зеркало 2kmp vip
博客作者 RichardWoomb
В последние годы скупка айфонов стала популярной услугой у нас в стране и прочих странах. Эта практика позволяет обладателям негодных либо устаревших моделей получить средства или выгодно поменять устройство на новейшую модель, когда как покупатели находят возможность приобрести качественные телефоны по более по разумным. В данной статье осмотрим основные аспекты скупки айфонов, превосходства и советы по выгодной продаже.
Почему стоит продавать айфон?
Плюсы и минусы скупки айфонов
Плюсы:
Минусы:
Как выгодно продать свой айфон?
Заключение
Скупка айфонов это удачный способ продать старенькый телефон, обновить Свой гаджет и получить средства на новые покупки. Благодаря быстро развивающемуся базару скупки технологий, у пользователей есть множество вариантов для выгодной торговли своими устройствами. Придерживайтесь советов, чтобы сделка прошла успешно, и вы остались довольны результатом.
博客作者 Roycewon
Melbet is an emerging online betting podium that offers a widespread index of options allowing for regarding sports betting, stay betting, and casino games. Established to accommodate an broad assortment of betting markets, it has speedily become popular all of a add up to bettors worldwide.
Drug Occurrence
The Melbet website is designed with user-friendliness in mind. With a classic interface, users can without a hitch voyage entirely peculiar sections such as sports, casino, and promotions. The platform is accessible via desktop and movable devices, ensuring that customers can abode bets anytime and anywhere.
Sports Betting
Melbet covers an extensive roam of sports, including football, basketball, tennis, and esports. Bettors can discover numerous wagering options, including partnership results, over/under, and different stumbling block markets. Flaming betting is a approved spotlight that allows users to place bets on ceaseless events, enhancing the thrill of the game.
Casino Games
In summation to sports [url=https://codyjtvu86319.howeweb.com/29372951/working-experience-the-thrill-of-betting-with-melbet-bangladesh]https://codyjtvu86319.howeweb.com/29372951/working-experience-the-thrill-of-betting-with-melbet-bangladesh[/url] betting, Melbet offers a interminable selection of casino games. Players can get a kick timeless table games such as blackjack and roulette, as okay as a collection of slots from lid software providers. The palpable casino cross-section provides an immersive experience with legal dealers and real-time gameplay.
Promotions and Bonuses
Melbet is known for its captivating promotions and bonuses as both fresh and existing customers. These offers can involve appreciated bonuses, loose bets, and cashback deals, which facilitate to enhance the overall betting experience.
Certainty and Support
Melbet prioritizes the safety and safe keeping of its users. The stand employs advanced encryption technology to protect consumer facts and monetary transactions. Additionally, Melbet provides 24/7 patron second auspices of many channels, ensuring that any issues are immediately addressed.
Conclusion
Melbet stands peripheral exhausted in the competitive online betting market with its enormous offerings, practicable interface, and hard-nosed purchaser support. Whether you are a seasoned bettor or modern to the men of online gambling, Melbet provides a honourable and exciting principles to explore your betting passion.456y56y
博客作者 Richarddic
We bring you latest Gambling News, Casino Bonuses and offers from Top Operators, Online Casino Slots Tips, Sports Betting Tips, odds etc.
https://www.jackpotbetonline.com/
博客作者 Bichchind
[url=https://saleclonedcards.work]https://saleclonedcards.work[/url]
Item 1 Card Total Balance: $3 100 – Price $ 110.00
Item 3 Cards Total Balance $9 600 – Price $ 180.00
Item PayPal Transfers $ 500 – Price $ 49.00
Item PayPal Transfers $ 2000 – Price $ 149.00
Item Western Union Transfers $ 1000 – Price $ 99.00
Item Western Union Transfers $ 300 – Price $ 249.00
*Prices on the website may vary slightly
[url=https://sale-cloned-cards.work]https://sale-cloned-cards.work[/url]
博客作者 Матрица судьбы твой онлайн путеводитель
Раскройте секреты своей жизни с [url=https://matricasudbi.ru/]разложить матрицу судьбы[/url] ! Проведите расчет матрицы судьбы по дате рождения и получите детальный анализ своей жизненной программы. Этот метод, основанный на нумерологии и Таро, поможет вам понять кармические задачи, выявить сильные стороны и преодолеть возможные преграды. [url=https://matricasudbi.ru/]матрица судьбы рассчитать бесплатно[/url] предоставит вам ценные советы и рекомендации, которые помогут направить вашу жизнь в нужное русло. Откройте для себя удивительный мир самопознания и гармонии.
博客作者 Robertwix
go [url=https://coinomiwallet.io]Coinomi Multi-Wallet[/url]
博客作者 generic
[url=https://okmodafinil.com/]where to buy modafinil uk[/url]
博客作者 medication
[url=https://accutaneiso.online/]buy accutane 5 mg[/url]
博客作者 AnthonySem
Высококачественный грунт для вас и вашего бизнеса ООО «ЭКОПЕРЕРАБОТКА» https://grunt-eco.ru/