添加自定义注解
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,710 条评论
博客作者 canadian pharmaceutical companies
Hello to all, the contents existing at this web site are truly awesome for people knowledge, well, keep up the good work fellows.
博客作者 Kostiksqt
[url=https://besplatnye-bukmekerskie-kontory.ru/]рейтинг БК[/url] помогает пользователям выбрать платформу с лучшими условиями для ставок. Проверенные отзывы и аналитика экспертов помогут сделать правильный выбор.
博客作者 RobertHoona
Сельскохозяйственная техника играет ключевую роль в эффективном ведении земельного бизнеса. На современном рынке представлено множество моделей и марок, любая из которых имеет свои характерные черты и превосходства. Прежде чем купить важно принять во внимание ряд факторов, чтоб сделать правильный выбор и инвестировать средства с пользой.
Перед тем как отправиться за покупкой, обусловьте, какие конкретно машины и оборудование вам необходимы. Составьте перечень необходимых единиц, исходя из типа вашей деятельности. Например, если вы занимаетесь выращиванием зерновых культур, вам может пригодиться трактор, сеялка и комбайн. Для садоводства может потребоваться специализированное оборудование, такое как культиваторы и опрыскиватели.
Проведите исследование базара, чтобы понять, какие марки и модели наиболее востребованы в вашей местности. Обратите внимание на отзывы иных аграриев, также обследуйте предложения различных дилеров и производителей. Это окажет вам помощь сориентироваться в стоимостях и доступных опциях.
Одним из главных решений является выбор меж новой и б/у техникой. Новая техника по своему хорош: гарантия производителя, современное оборудование, наименьшая возможность поломок. Но и цена новейшей техники значительно выше. Бывшая в употреблении техника может быть более доступной, но требует кропотливой проверки, чтобы убедиться в ее трудоспособности и состоянии.
При выборе техники обращайте внимание на технические характеристики, в том числе:
Важно уточнить, какие услуги по обслуживанию делает отличное предложение продавец, и в какой мере доступны запчасти для избранной модели. Регулярное техническое обслуживание и возможность прыткого получения запчастей критически важны для минимизации простоя техники.
При выборе техники учитывайте ваш бюджет. Не пренебрегайте имеет право на дополнительные расходы, такие как страховка, обслуживание, налоги и другие издержки, которые могут возникнуть в ходе эксплуатации. Возможно, имеет смысл рассмотреть варианты финансирования, в том числе лизинг либо кредиты на покупку техники.
Прежде чем купить, https://xn—-7sbgabarzt9afbtggek.xn--p1ai/index.php?subaction=userinfo&user=eqakuwy особенно если вы рассматриваете подержанное оборудование, непременно протестируйте технику. Если возможно, выполните несколько стандартных операций, чтобы оценить ее трудоспособность и качество работы.
Запрашивайте у продавца все нужные https://golpro.jp/userinfo.php?uid=14448# документы на технику: технический паспорт, документы о ремонте и обслуживании, а также подтверждение права собственности. Это поможет избежать заморочек в дальнейшем.
Заключение
Покупка сельхозтехники это серьезное и ответственное решение для любого агрария. Подходите к всему этому с вниманием, кропотливо изучайте рынок и свои потребности, чтобы ваша инвестиция окупилась и принесла максимальную пользу. Сможете избрать правильное оборудование, и оно станет надежным ассистентом в вашем бизнесе.
博客作者 https://avbusramizen.com/bursa-bosanma-avukati-2/
https://avbusramizen.com/bursa-bosanma-avukati-2/
博客作者 Mispeciak
Учебный центр "МПИ" проводит разнообразие программ дополнительного образования для профессионалов различных отраслей. Мы осознаём, насколько важно сегодня не отставать от актуальных норм и критериев в работе. Если вы хотите не только улучшить свои навыки, но и серьёзно улучшить карьерные перспективы, то наши обучающие курсы — то, что вам нужно. Независимо от того, вы трудитесь в строительно-образовательной области, у нас есть подходящие курсы для всех.
Одним из ключевых программ нашего центра являются [url=https://mpi-msk.ru/catalog/gosudarstvennoe-i-municipalnoe-upravlenie-iurisprudenciia?type=povyshenie-kvalifikacii]курсы повышения квалификации для юристов договорное право[/url] . Мы предлагаем новейшие и проверенные курсы, которые помогут педагогам повысить уровень подготовки и применить передовые технологии обучения в своей работе. Все курсы подготовлены с акцентом на актуальных требований в сфере образования, что обещает вам возможность соответствовать самым высоким стандартам профессии.
Также мы предлагаем [url=https://mpi-msk.ru/catalog/gosudarstvennye-zakupki?type=professionalnaya-perepodgotovka]переподготовка закупки[/url] которые помогут специалистам и проектировщикам в строительной сфере следить за текущих изменений. В строительстве всё быстро меняется: от технических решений до законодательных норм, и наши программы помогут быть всегда на шаг впереди. У нас вы найдёте практические и теоретические курсы, которые помогут вам освоить современные технологии, но и улучшить свою продуктивность на рабочем месте.
Образовательное учреждение "МПИ" также предлагает большой выбор программ, таких как курсы для врачей, менеджеров, финансовых специалистов и других специалистов. Посетив веб-сайт mpi-msk.ru, вы получите информацию о представленных программах и подобрать курс, которая соответствует вашим потребностям. Мы считаем важным подчеркнуть качество наших курсов и квалификацией наших преподавателей, которые обладают многолетним опытом работы в своих сферах.
Ждём ваших звонков, и мы поможем вам выбрать подходящую программу для вашего развития в профессии. Наши контакты: г. Москва, ул. Авиамоторная, д. 50, стр. 2, помещ. 30/2. Телефон: 8(800)7772941.
博客作者 canadian pharmacy online
Hey There. I discovered your weblog the usage of msn. This is a really neatly written article. I will be sure to bookmark it and come back to learn more of your helpful information. Thanks for the post. I’ll definitely comeback.
博客作者 Jamesknike
Познакомьтесь со нашим проф коллективом, яже организовывает чудесную мебель, воплощая ваши мечтания в реальность https://www.cehitae2kuhnishki.ru.
博客作者 Jamesknike
Познакомьтесь с нашим профессиональным коллективом, который строит уникальную мебель, воплощая ваши мечтания в явь https://www.cehitae2kuhnishki.ru.
博客作者 DonaldExinc
авиабилеты стоимость [url=https://avia-bilet.online/]авиабилеты купить дешево без пересадки москва[/url] на завтра билет
博客作者 Jamesknike
Познакомьтесь с нашим проф коллективом, яже образовывает уникальную этажерка, воплощая ваши мечтания в течение явь https://cehitae2kuhnishki.ru/.
博客作者 pharmacy online
I’m impressed, I must say. Seldom do I come across a blog that’s both educative and amusing, and without a doubt, you have hit the nail on the head. The problem is something which not enough folks are speaking intelligently about. I am very happy I came across this during my hunt for something regarding this.
博客作者 Brianerafe
Выше интернет-магазин "Мебель-шмммммммебель" предлагает широкий ассортимент мебели для кухонь. ЯЗЫК нас вы выберете все нужное для существа приятного также высокофункционального экстерьера https://www.tyfapao6kuhnishki.ru/.
博客作者 Brianerafe
Выше- интернет-магазин "Мебель-шмммммммебель" предлагает широкий ассортимент мебели чтобы кухонь. У нас вы сыщете все необходимое чтобы тварей приятного а также функционального экстерьера https://tyfapao6kuhnishki.ru/.