添加自定义注解
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,240 条评论
博客作者 JosephBiz
Стенные конвертеры это устройства, которые позволяют преобразовывать один тип электрического сигнала в другой или давать обеспечение подключение различных устройств к электросети. Основное назначение таких конвертеров упрощение подключения электроники, например, телевизоров, компьютеров и мультимедийных систем. Они могут быть применены для преображения HDMI в VGA, DVI в HDMI и многих других форматов.
Причины популярности
Дизайнерские решения
Современные [url=https://heizer.ru/catalog/radiatory-otopleniya/alyuminievye-sektsionnye/]Алюминиевые радиаторы отопления[/url] могут представлять собой что-то большее, чем просто функциональные устройства. Дизайнеры всё чаще работают над тем, чтоб такие устройства были прекрасными и гармонично вписывались в обстановку. Вот несколько аспектов, на которые стоит обратить внимание:
Заключение
Настенные конвертеры это сложно комфортные технические устройства, а настоящие элементы дизайнерского решения, способные улучшить функциональность и внешний вид вашего пространства. Инвестируя в высококачественные и элегантные конвертеры, вы не только лишь упрощаете ежедневные задачи, связанные с подключением устройств, но и создаете уникальную атмосферу у вас на дому или офисе. Выбор правильного конвертера может стать принципиальным шагом к созданию гармоничного и многофункционального пространства.
博客作者 Davidpex
Manchester City was founded in 1880 as St. Mark’s, while Manchester United was founded in 1878 as Newton Heath. The first encounter between these two clubs took place in 1881, and since then, their rivalry has become one of the most anticipated events in English football https://manchestercityvsmanchesterunited.ru/.
博客作者 mncxbirpx
The LA Galaxy’s 2022 local and national broadcast schedule can be found below: The club friendly game between LA Galaxy and New York City FC will be played this Wednesday, February 14 at 3:00 PM (ET). The match will also be televised on FS1. LA Galaxy’s Dignity Health Sports Park seemed awfully empty. Overheard in my living room… "That supporters section has more flags than people." I get it. When you live within 15 miles of the stadium and it still takes two hours to get there and two hours to get home, and it’s a work and school night, I might hit the couch as well. With their long injury list plus star forward Raheem Edwards’ yellow card suspension, Galaxy had nearly $10M in combined market value unavailable. That’s tough to win with. That’s like having Löwen, Klauss, and Nilsson out at the same time earlier in the year. No sympathy from this side.
https://www.khay.co.kr/bbs/bbs/board.php?bo_table=free&wr_id=0
“The duration of each match shall be 90 minutes, except in special cases, provided for in these Competition Rules, where an extra 30 minutes shall be played. The Referee shall allow for time lost in accordance with the Laws of the Game or through accident or other cause and his decision on this matter is not subject to appeal. The half-time interval shall be 15 minutes for all ties in all competitions. Both teams shall enter the field of play together, five minutes prior to the kick-off time, along with the Match Officials.” For today’s american football matches and results visit our american football games today and live score page. Former England internationals James Milner and Danny Welbeck both sign new contracts with Brighton. By submitting this form you are agreeing to the USL Privacy Policy.
博客作者 BrandonUnutt
Правильный размер и форма ковра могут значительно повлиять на восприятие пространства. Вот несколько советов:
Не считая а всё потому не опасайтесь проводить эксперимент с формами: круглые ковры прекрасно подойдут для уютных уголков, а прямоугольные для вытянутых пространств.
Выбор материала ковра один из ключевых причин, влияющих на его долговечность и внешний вид. Разглядим главные варианты:
Ковры могут стать броским акцентом в интерьере или, и наоборот, добавить сдержанности. Тут главно учитывать общую палитру и стиль вашего дома:
Принципиально помнить, что ковер [url=https://maijar.jp/cgi-bin/upload/clip.cgi/clip.cgi]https://maijar.jp/cgi-bin/upload/clip.cgi/clip.cgi[/url] требует регулярного ухода. Выбирайте модели в зависимости от того, как нередко вы готовы растрачивать время на их чистку. Некоторые ковры можно стирать в машинке, а другие требуют профессиональной химчистки.
Заключение
Выбор ковра для дома это творческий и важный процесс, который способен кардинально поменять восприятие вашего пространства. Беря во внимание стиль, размер, материал и предназначение, вы сможете подобрать безупречный вариант, который будет веселить вас длинные годы. Основное не спешите и выбирайте с душой, ведь ковер наполняет дом уютом и теплотой.
博客作者 DonaldReimb
check these guys out [url=https://torbrowser.network]Torbrowser download[/url]
博客作者 Charlesruits
Проектируем уникальные кухни, которые соответствуют вашим желаниям и потребностям https://kuhnyaofabrikaufabrik.ru/.
博客作者 Davidmag
Access pill facts. Medication resource available.
[url=https://accutanemeds.online/#]where can i buy accutane in stores[/url]
Patient pill facts. Pill details provided.
博客作者 Kuphdaurb
[url=https://t.me/megamarket_promokod_skidka]промокод на скидку в убери[/url]
博客作者 Faruviolade
Химчистка салона Иркутск avtoritet038.ru
В сегодняшнее современное время сервис клининга всё больше пользуются популярностью. Предлагаем Вашему вниманию компанию Авторитет cleanservice, которая предлагает свои услуги квалифицированной уборки по городу Иркутск. Работаем с жилыми и коммерческими помещениями, во втором случае на долгой основе со всеми нужными договорами. Обстоятельства узнайте на онлайн ресурсе avtoritet038.ru всё о наших услугах.
Что касается [url=https://avtoritet038.ru/uborka-zhilyh-pomeschenij]уборка квартир иркутск недорого[/url] можно заказать у нас. Звоните по телефону 8(3952)70-31-01 или оформите заявку на сайте. У нас используется лучшее оборудование для уборки и профессиональные биосредства, профессиональные работники, которые учтут все Ваши пожелания и работают исключительно с персональным подходом. Оплата осуществляется только после окончания работы, способ оплаты Вы можете выбрать по личному удобству.
Свободное время сейчас – самый дорогой запас. Многие отказались от домохозяйства в пользу других, более важных дел. Люди предпочитают заниматься предпринимательством, семьей, спортом или хобби, а хозяйственные дела доверяют специалистам. На онлайн портале avtoritet038.ru Вы сможете позвать их к себе в коттедж или в кафе.
Наши оказываемые услуги: [url=https://avtoritet038.ru/chistka-bassejnov]чистка бассейнов[/url] или мытье фасадов, химчистка мягкой мебели, чистка кухонной техники, чистка мягких игрушек, уборка придомовых территорий, вывоз снега зимой, чистка полов и многие другие. Спросите все детали у нашего консультанта по уже названному телефону или оформите обратную связь. Мы расположены по адресу: г. Иркутск, ул. Советская, д. 115 Г.
博客作者 Actchind
[url=https://salesmartphonebuy.link] Cheap iPhone 14 Pro Cheap iPhone 12[/url]
iPhone 8 Plus, 256GB, Gold 300.00$ iPhone 8 Plus, 256GB, Silver 300.00$ iPhone 8 Plus, 256GB, Space Gray 300.00$ iPhone 7 Plus, 256GB, Black 200.00$ iPhone 7 Plus, 256GB, Gold 200.00$ iPhone 7 Plus, 256GB, Silver 200.00$ iPhone 7 Plus, 256GB, Rose Gold 200.00$ iPhone 7 Plus, 128GB, Black 150.00$ iPhone 7 Plus, 128GB, Gold 150.00$ iPhone XS Max, 64GB, Silver 200.00$ iPhone XS Max, 256GB, Gold 250.00$ iPhone XS Max, 256GB, Space Gray 250.00$ iPhone XS Max, 256GB, Silver 250.00$ iPhone XS Max, 512GB, Gold 250.00$ iPhone XS Max, 512GB, Space Gray 250.00$ iPhone XS Max, 512GB, Silver 250.00$
[url=https://salesmartphonebuy.link]https://salesmartphonebuy.link[/url]
博客作者 ArturoSceve
Мы гордимся качеством нашей работы и стремимся превзойти ваши ожидания https://fabrikaofabrikaokuhny.ru/.
博客作者 Henryabody
Обучение кайтсёрфингу в Хургаде, кайт лагерь, кайт школа подробнее у нас в канале https://t.me/detivetrachat https://instagram.com/detivetra.ru
博客作者 Avtoritet038
Что касается [url=https://avtoritet038.ru/myte-natyazhnyh-potolkov]помыть натяжные потолки иркутск[/url] можно заказать у нас. Позвоните по телефону 8(3952)70-31-01 или оставьте заявку на веб ресурсе. У нас лучшее оборудование для клининга и качественные биосредства, профессиональные специалисты, которые примут к сведению все Ваши желания и работают исключительно с персональным подходом. Оплата происходит только после уборки, метод оплаты Вы можете выбрать самостоятельно.
博客作者 JoshuaRot
Ваш идеальный дизайн кухни https://kuhnyaekuhnyaafabrika.ru/.
博客作者 cialis pharmacy online
Hi, I do believe this is an excellent website. I stumbledupon it ;) I will come back yet again since i have bookmarked it. Money and freedom is the best way to change, may you be rich and continue to help others.