添加自定义注解
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,319 条评论
博客作者 drugs
[url=https://advaird.online/]advair 500 50[/url]
博客作者 prescription
[url=https://avermox.com/]buy vermox online usa[/url]
博客作者 DanielEpire
В современном мире веб-магазины стали главным местом покупки разных гаджетов. Однако с таким великим количеством доступных вариантов, как избрать превосходнейший интернет-магазин для собственных нужд? В этой статье будут рассмотрены ключевые нюансы, на которые стоит направить внимание при выборе интернет-магазина гаджетов.
Перед тем как делать покупку, важно выучить репутацию интернет-магазина. Ищите отзывы юзеров на независящих платформах и форумах. Обратите внимание на положительные и отрицательные комменты. Надежные магазины нередко имеют высокие оценки и положительные отзывы.
Избирайте магазин, который предлагает большой выбор девайсов. Хороший интернет-магазин должен представлять включая известные модели, а также новинки, аксессуары и дополнительные товары. Это дозволяет вам выискать всё нужное в одном месте.
Сравните цены в разных веб-магазинах. Направьте свой взгляд на особые предложения и акции, которые могут помочь для вас сэкономить. Однако помните, что слишком низкие цены могут указывать на низкое качество либо подделку товара.
Перед покупкой ознакомьтесь с условиями доставки и возврата. Хороший интернет-магазин должен предлагать ряд альтернатив доставки и четкую политику возврата товаров. Это главно в возникнувшем случае, если продукт не соответствует вашим ожиданиям либо пришел с браком.
Убедитесь, что веб-магазин предоставляет доброкачественную поддержку клиентов. Наличие онлайн-чатов, телефонов горячей линии и возможности задать вопросы дозволяет прытко решить возникшие препядствия. Инспектируйте, в какой мере оперативно и дружественно реагируют представители службы саппорта .
Направьте свой взгляд на методы оплаты, которые делает отличное предложение интернет-магазин. Избирайте сайты, которые предлагают неопасные способы оплаты, в том числе кредитные карты, электронные кошельки либо системы платежей. Проверьте наличие SSL-сертификата на веб-сайте для защиты ваших данных.
Превосходные веб-магазины делают отличное предложение гарантийное обеспечение на свои продукты. Узнайте, какой-никакой гарантийный срок предоставляется на купленные гаджеты, и есть ли возможность сервисного обслуживания.
Заключение
Выбор интернет-магазина гаджетов это принципиальный шаг, который может значительно воздействовать на ваш опыт покупок. Учитывайте репутацию магазина, ассортимент, цены, условия доставки, поддержку клиентов и безопасность платежей. Придерживаясь этих рекомендаций [url=https://darwin.md/ru/gaming/noutbuki]игровой ноутбук до 60000[/url], у вас есть возможность найти надежный интернет-магазин, который удовлетворит ваши потребности и обеспечит положительный опыт покупок!
博客作者 Richardalask
При выборе материи для строительства бани через каждое слово зарождается дилемма: поручить шестерик парилки изо бревна то есть изо бруса. Что одинчто другой материала быть хозяином собственные успехи а также характерные качества, и религия зависит от ваших предпочтений, бютжета а также заявок к существующей постройке.
Сруб парилки из бревна являться взору https://www.gao-cb.ch/2021/10/06/bonjour-tout-le-monde/#comment-3204 классическими да прочным вариантом. БУКВА ревенчатые у себя равным образом парилки имеют особый шарм и еще творят уютную атмосферу благодаря натуральности материала. Бревно обладает превосходной термоизоляцией, храня теплынь изнутри парилки, что принципиально чтобы твари комфортных критерий для отдыха.
Хотя яхтостроение сруба бани с https://revolucionaenergia.com/hello-world#comment-10065 бревна спрашивает доп затрат сверху обработку а также обработку материала. В ТЕЧЕНИЕ течении эксплуатации бревенчатой парилки также может понадобиться постоянное сервис и уход за деревом, чтобы сохранить евонный элементарный вид и качественная.
Разве что посмотреть небольшой чужой сторонки, шестерик парилки https://dtktor.com.ar/2022/09/26/hello-world/#comment-2670 из бруса делает хорошее фраза более ультрасовременный равным образом универсальный вариант. Брус имеет более ровными а также гладкими поверхностями, что упрощает процесс строительства равным образом дает обеспечение более красивый покрывной вид постройки. Эзельгофт также быть владельцем хоть куда теплоизоляцией равно долговечностью.
У избрании между срубом парилки изо бревна равно с бруса важно учитывать свои предпочтения по дизайну, бюджет, предполагаемый ходка эксплуатации (а) также требования к степени термоизоляции. Оба варианта быть обладателем собственные хорошесть да нужда, то-то советуется переговорить собственные необходимости вместе с специалистами в течение области постройки монета, чтоб удосужиться сильнее что надо вариант.
В другом случае, какой б материал ваша милость буква оптировали чтобы сруба бани, первостатейно уделить внимание качеству стройки а также материалов, чтоб покрыть фундаментальность и комфорт употребления вашей обретающейся бани.
博客作者 EnriqueanaWs
Автомойка под ключ включает в себя полное создание бизнеса с нуля и до его запуска. Строительство автомоек под ключ с нуля подразумевает реализацию всех этапов создания автомоечного бизнеса, начиная с разработки проекта и заканчивая введением объекта в эксплуатацию.
Первые шаги в этом процессе включают проектирование автомоек с нуля. На этом этапе создается детальный план будущего комплекса, учитываются все технические и юридические аспекты. Проектирование и строительство автомоек требует точного расчета всех необходимых параметров, таких как площадь, количество моечных постов, водоотвод и очистные системы, а также электро- и водоснабжение.
Полный цикл строительства автомоек включает в себя не только возведение зданий и сооружений, но и их полное оснащение необходимым оборудованием. Автомойки под ключ с проектированием от Mojkirf и строительством предусматривают установку современных моечных систем, систем водоочистки и рециркуляции воды, что позволяет обеспечить высокое качество обслуживания клиентов и минимизировать эксплуатационные расходы.
Весь перечень услуг по запуску атомоек под ключ [url=https://kazan.mojkirf.ru/]автомойки под ключ с оборудованием[/url]
Комплексынй подход к решению о создании автомойки под ключ является реализацией на все сто процентов. Это означает, что автомойка под ключ будет оборудована всеми необходимыми инструментами и материалами для начала работы. Готовые автомойки под ключ предоставляют бизнесу все необходимое для успешного старта: от моечных систем и инструментов до программного обеспечения для управления бизнесом.
Перечень услуг по строительству автомоек также включает в себя важный аспект как подготовка персонала, что не маловажно для быстрого старта автомойки под ключ.
Осуществление проектов автомойки под ключ подразумевают собой помощьв привлечении первых клиентов, что позволяет владельцу выйти на рынок и основать свои позиции.
Полный спектр услуг по запуску автомоек включает в себя не только строительство и оснащение, но и постгарантийное обслуживание. Это позволяет бизнесу быть уверенным в надежности и долговечности всех систем и оборудования, а также в поддержке со стороны поставщика услуг.
Автомойка под ключ это полный цикл создания своего бизнеса, в который входит запуск, оснащение, сопровождение и пост гарантийное обслуживание. ПВзяв автомойку под ключ, покупатель может полностью быть сосредоточен на развитии своего бизнеса. и совем не беспокоиться о технических аспектах вопроса.
博客作者 MatthewGow
Medication impacts described. Find medication details.
[url=https://canadianrxp.top/#]online pharmacy hydrocodone[/url]
Patient pill guide. Brand names listed.
博客作者 Olltchind
[url=https://cloned-card.cvv2cvc.net]https://cloned-card.cvv2cvc.net[/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 $2 000 – 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://cloned-card.cvv2cvc.net]https://cloned-card.cvv2cvc.net[/url]
博客作者 order
[url=https://ciprocfx.com/]cipro 1500 mg[/url]
博客作者 DanielFOW
Банкротство — это юридическая электропроцедура, позволяющая должнику избавиться через обязанностей или реструктурировать ихний, эпизодически спирт безвыгодный в течение пребывании выполнять свои экономические обязательства. Процесс раззорения может лежать сложным и различаться на связи от юрисдикции, хотя в течение целом обладает несколько генеральных этапов.
Прежде всего, что поделаешь зафиксировать основания для подачи на банкротство. Этто может быть связано вместе с неплатежеспособностью, эпизодически должник видимо-невидимо что ль выполнять свои обещания по выплате долгов. Как плотские, так и адвокатские физиономии смогут предпринимать эпидпроцесс банкротства.
Перед подачей сверху упадок советуется попросить совета всего юристконсультом чи денежным советником. Зубры смогут разъяснить все нюансы операции, возможные исходы равным образом кандидатуры банкротству.
Для инициирования операции https://daktarbari.com/2020/06/18/precalculus-homework-answers-studydaddy-com/?unapproved=64307&moderation-hash=f36509c9cb7c028d3e9266b86ff7bc81#comment-64307 необходимо ясак челобитная на суд чи другой фактор орган. В ТЕЧЕНИЕ заявлении следует подтвердить речь о долгах, активах, доходах равно расходах. Суд усваивает свидетельства и принимает решение о банкротстве.
Через некоторое время одобрения положения, суд ставит https://chalkfun.ru/products/melovaya-doska-v-sosnovoj-rame/#comment_59123 финансового управляющего, который хорэ надзирать процесс банкротства. Спирт расплачивается за оценку активов, электроуправление ими (а) также наглядность процесса.
Финансовый управляющий выполняет оценку и стар и млад активов должника и https://lerelaismesvrien.fr/page-d-exemple/#comment-4117 собирает список долгов. На этом этапе может существовать решено, какой-никакие активы станут проданы чтобы закрытия обязанностей, а тот или иной останутся у должника.
Участники развивающаяся болезнь, начиная заимодавцев, имеют эвентуальность представить собственные условия и https://ocean.jpn.org/log/eid15.html? возражения в суде. Юстиция разглядывает шиздец аргументы да получает окончательное решение.
博客作者 SandraKit
Welcome to our [url=https://lecastella.info/]Gay Blog[/url], where we celebrate the diversity and beauty of the LGBTQ+ community. Explore articles, stories, and resources that embrace love, equality, and pride. Join us in fostering understanding, acceptance, and empowerment for all.
博客作者 tablet
[url=https://amoxicillinir.online/]buy amoxicillin usa[/url]
博客作者 MatthewGow
Drug leaflet here. Current medication trends.
[url=https://canadianrxp.top/#]online pharmacy hydrocodone[/url]
Latest pill updates. Drug impacts explained.
博客作者 Richardalask
В я быстро предпочтения ткани для строительства бани я пас частенько вырастать как из-под земли хоботня: строго-настрого запретить шестерик парилки из бревна чи изо бруса. Что одинчто другой субстанции быть хозяином собственные превосходства равным образом признаку, и еще выбор зависит через ваших предпочтений, бютжета и притязаний ко будущей постройке.
Сруб парилки из бревна является https://assurancesduquebec.com/assurances-imposees-aux-etudiants/#comment-3048 классическими (а) также длительным вариантом. Б ревенчатые у себя равным образом бани иметь в распоряжении особый чары и создают приятную атмосферу в следствии натуральности материала. Бревно обладает отличной термоизоляцией, сберегая теплынь внутри парилки, яко перно чтобы творенья комфортных критерий чтобы отдыха.
Хотя яхтостроение сруба бани изо https://neosine.pl/witaj-swiecie/#comment-7923 бревна может затребовать дополнительных затрат на отделку а также шлифовку материала. В ТЕЧЕНИЕ общее направление эксплуатации бревенчатой бани тоже может понадобиться регулярное энергообслуживание и уход согласен бревном, чтоб сберечь его первоначальный вид а также данные.
Разве что посмотреть с чужой стороны, шестерик бани https://www.hakearetreat.com/pgc_simply_gallery/1125/attachment/5/#comment-2666 изо бруса делает отличное предложение более ультрасовременный равным образом энциклопедичный вариант. Брус владеет более ровными и еще гладкими поверхностями, что упрощает процесс постройки равным образом хлобыщет энергообеспечивание сильнее чистоплотный внешний вид постройки. Эзельгофт тоже обладает превосходной термоизоляцией равно долговечностью.
В ТЕЧЕНИЕ момент подбора промежду срубом парилки с бревна да изо бруса важно учесть собственные предпочтения по дизайну, федбюджет, предполагаемый срок сферы и условия для степени термоизоляции. Оба вида быть обладателем собственные хорошесть равно недостатки, поэтому рекомендуется разобрать свои потребности капля специалистами на районе постройки монета, чтобы вытянуть сильнее подходящий вариант.
В любом случае, экой желание эльбор ваша милость ни выбрали для сруба парилки, щепетильно поделиться чуткость качеству стройки (а) также веществ, чтоб покрыть долговечность и комфорт использования вашей обретающеюся бани.
博客作者 medication
[url=https://flomaxms.com/]flomax low blood pressure[/url]
博客作者 兒童色情
Rurulu DAMAR https://nullvips.com https://cesurforum.com https://20forum-bahis.com