添加自定义注解
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,560 条评论
博客作者 Fixbet
Thank you great post. Hello Administ .Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 matadorbet
Thank you for great content. Hello Administ. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 Fixbet
Good info. Lucky me I reach on your website by accident, I bookmarked it. Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut
博客作者 order
[url=https://amoxicillinbact.com/]amoxil 100mg[/url]
博客作者 online
[url=https://lasixtbs.online/]furosemide online canada[/url]
博客作者 Donaldhaize
Hi! [url=https://erectiledysfunctionpillsxl.com/#]cialis-nabp-certified-online-pharmacy[/url] great web page.
博客作者 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
博客作者 order
[url=https://doxycyclineo.com/]100 doxycycline[/url]
博客作者 Fod38
Иркутск окна ПВХ fod38.ru
Лучшие по свойствам и отзывам ПВХ окна производят здесь! Хотим пригласить Вас на Фабрику окон и дверей в Иркутске, чтобы заказать качественные пластиковые окна для вашей квартиры или дома. Мы значимся производителем, поэтому у нас приемлемые цены и отличное качество, на которое предоставляется гарантия. Изготовление происходит в самые сжатые сроки, а также монтажная работа настоящими профессионалами.
На веб портале fod38.ru Вы найдете всю важную информацию о нашей компании, продукции, контакты и как оформить заказ. Представляем 3 варианта ПВХ окон: эконом, стандарт и премиум, где отличительной чертой будет являться цена/качество. Выбирайте нужный Вам вариант или просите консультацию от специалиста, какой именно осуществить выбор в определенном случае.
По теме [url=https://fod38.ru/ofisnye-peregorodki/]иркутск офисные перегородки[/url] мы непременно Вам поможем. Окна от представленной фабрики являются экологичными, так как в них не содержится свинец. После установки, в комнате будет тихо и комфортно, а также надежно для детей, ведь мы устанавливаем ручки с замком. Все стекла с защитой от ультрафиолета, а также их легко мыть, комфортно проветривать и красиво на них смотреть.
Если Вы хотели найти [url=https://fod38.ru/]окна пластиковые цена[/url] – то заходите на наш сайт. На сайте fod38.ru возможно оформить заказ на бесплатный замер будущих окон. Это лучшее решение, чтобы не тратить своё свободное время, ведь договор можно заключить прямо на дому. Замерщик даст ответы на все Ваши вопросы, покажет примеры и фотографии, примет в расчет любые ваши пожелания и осуществит безупречный замер с расценками.
Звоните по номеру телефона +7(3952)656-226 или приезжайте в один из офисов, по адресу: г. Иркутск, ул. Байкальская, д. 105 А, оф. 101. График работы с понедельника по пятницу с 9:00 до 17:30, воскресенье – выходной день. Приходите, заказывайте лучшие окна в Вашей жизни.
博客作者 Garerchind
[url=https://buyprepaid-cards.cvv2cvc.net]Site[/url]
Item 01 Card Total Balance: $3 100 – Price $ 110.00
Item 03 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 $1 000 – Price $ 99.00
Item Western Union Transfers $300 – Price $ 249.00
*Prices on the website may vary slightly
[url=https://buyprepaid-cards.cvv2cvc.net]Buy Cloned card paypal acc[/url]
博客作者 Kristenfef
Step into the thrilling world of [url=https://usacasinohub.com/reviews/]casinos[/url], where every card you draw could be the key to victory! Whether you’re a seasoned player or a newcomer, our online casinos offer endless excitement and the chance to master your skills. Join us now and experience the ultimate casinos list adventure!
博客作者 Donaldhaize
Hi there! [url=https://erectiledysfunctionpillsxl.com/#]365 pills online pharmacy[/url] very good site.
博客作者 Donaldhaize
Hi there! [url=https://erectiledysfunctionpillsxl.com/#]noprecriptionneedcanandianpharmacy[/url] good internet site.
博客作者 MatthewWeera
Ramenbet казино: мир онлайн игр и увлекательный гейминг
Современные азартные игры это увлекательный мир, который в основном расположен на платформах онлайн казино. Одним из ярких представителей этой индустрии является Ramenbet казино — платформа, которая стремительно набирает популярность среди игроков благодаря своему широкому диапазону игровых предложений и многочисленным бонусам.
Огромный перечень доступных игр в Раменбет казино
Когда речь заходит об онлайн-казино, важным фактором является разнообразие представленных игр. Ramenbet казино предлагает своим пользователям широкий выбор азартных развлечений от ведущих разработчиков игрового софта, таких как NetEnt, EGT и Microgaming. Даные производители софта для сферы игрового контента очень популярны во всем мире и крайне востребованы.
Игровые автоматы играют ключевую роль в ассортименте любого онлайн-казино. В Ramenbet казино представлены сотни слотов с различными сюжетами, механиками и бонусными функциями. Здесь вы найдете и классические автоматы типа рулетки, и также слоты со сложным сюжетом самых разнообразных историй [url=https://t.me/s/ramenbetcasino_zerkalo]ramenbet иконка[/url]
Использование алгоритма случайных чисел
Самым главным привлекательном моментом для игроков, является использование в казино генератора случайных чисел, что в свою очередь гарантирует абсолютную честность для всех пользователей онлайн казино.
Для привлечения новых игроков многие онлайн-казино предлагают разнообразные приветственные бонусы. В случае с Ramenbet казино, каждый новый пользователь получает щедрый бонус в виде 250 бесплатных вращений (FS) при регистрации. Это отличная возможность начать игру без необходимости делать собственные вложения сразу же после создания аккаунта.
Для получения бесплатных вращений достаточно просто пройти не сложную процедуру регистрации и в автоматическом режиме бесплатные вращения пополнят ваш счет в личном кабинете.
Благодаря этому бонусу каждый новый участник сможет по достоинству оценить все игры казино.
В тяжелом конкурентном мире онлайн казино, казино раменбет занимает свои высоты благодаря честной игре и разнообразному игровому процессу. Казино рембет оставит неравнодушным практически всех игроков, какими бы они не были, только новичками или опытными азартными волками гейминга!
博客作者 matadorbet
Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across.Seo Paketi Skype: ByuMuT@KRaLBenim.Com –– live:by_umut