添加自定义注解
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,411 条评论
博客作者 price
[url=https://zithromaxl.online/]zithromax 200mg[/url]
博客作者 Meet the one who’s right for you. – http://xurl.es/p0gwt
Discover true love today. – https://xurl.es/p0gwt
博客作者 pharmacy
[url=https://diflucanr.com/]diflucan 150mg[/url]
博客作者 Ramongully
look at this web-site https://wasabi-wallet.io
博客作者 Olywchind
[url=https://sale-cloned-cards.net]Sale Credit cards Buy dumps card[/url]
Item 1 Card Total Balance: $3100 – Price $ 110.00
Item 3 Cards Total Balance $9600 – 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.link]Buy hacked paypal Clon cards[/url]
博客作者 klining_zxOn
Эффективная уборка после ремонта: Профессиональные клининговые услуги
клининговая компания в москве [url=https://www.klining-kompaniya-msk.ru/]https://www.klining-kompaniya-msk.ru/[/url] .
博客作者 purchase
[url=https://doxycyclineo.online/]order doxycycline 100mg without prescription[/url]
博客作者 sale
[url=https://xlyrica.online/]lyrica 225 mg capsule[/url]
博客作者 tablets
[url=https://valtrexv.online/]buy generic valtrex without prescription[/url]
博客作者 Jackieobeva
Bitcoin is the original and most eminent cryptocurrency, created in 2008 by an unknown личность or group of people using the incognito Satoshi Nakamoto. As a decentralized digital currency, Bitcoin operates without a principal officialdom or cull administrator. Transactions are verified not later than network nodes through cryptography and recorded in a buyers distributed ledger called a blockchain. This ensures transparency and security, making it unaccommodating object of any free object to control or guide the network. Bitcoin’s primary end is to provender an alternative to standard currencies, which are typically controlled by central banks and governments. Close to enabling peer-to-peer transactions without the need in the service of intermediaries, Bitcoin aims to revolutionize the financial way, donation greater pecuniary openness and discount transaction costs.
https://kurs-inyaz.ru
https://uralsantech.ru
https://rtdco.ru
https://sobytia-online.ru
https://modernic.ru
https://optdar.ru
https://k0r0b0chka.ru
https://miningmaster.pro
https://remont-telefonov-spb-78.ru
https://rezonans-m.ru
博客作者 Donaldesorn
my response https://wasabi-wallet.io/
博客作者 tablet
[url=https://tadalafilu.com/]compare prices cialis 20mg[/url]
博客作者 Rental Yacht UAE
Luxury yacht for rent dubai – https://raimane.com/2024/08/02/luxury-yacht-hire-in-dubai
博客作者 MulvaLop
Стоимость разработки дизайн проекта mudryakova.ru
Сразу после покупки жилплощади всегда возникает запрос относительно дизайна. И тут без специалиста будет очень трудно. Представлена вашему вниманию студию дизайна в Санкт-Петербурге Ольги Мудряковой, которая готова управиться с любой поставленной целью. Имея колоссальный опыт, множество выполненных проектов и десятки положительных комментариев — мы поручаемся, что воплотим для Вас лучший интерьер помещения любого назначения, учитывая все интересы и желания обладателя. Подробнее читайте на веб портале mudryakova.ru всю необходимую информацию.
Если Вы хотели найти [url=https://mudryakova.ru/]студия дизайна интерьера[/url] в интернете, то заходите на наш сайт уже сейчас. Если Вы еще не купили недвижимость, то мы с удовольствием окажем помощь Вам в выборе и разъясним возможности выбранных вариантов. Разработаем проект, который будет индивидуальным и практичным для нахождения. Составляем смету на материалы и оборудование, предоставим контакты надежных строительных компаний-наших партнеров. Сопутствуем все фазы строительства, четко контролируем работу строителей.
По запросу [url=https://mudryakova.ru/work/rooms/bathroom/]дизайн ванной комнаты с туалетом[/url] Вы на нужном пути. Чтобы начать с нами работать, требуется заполнить заявку на онлайн портале mudryakova.ru или позвонить по номеру телефона +7(812)408-00-07. Главный офис находится по адресу: г. Санкт-Петербург, ул. Мебельная, д. 49/92. Режим работы по будням с 9:00 до 19:00. Фотографии выполненных нами дизайн-проектов можно посмотреть на отмеченном сайте, также территориально. Делаем работу под ключ, также оказываем единичные виды услуг.
博客作者 tablet
[url=https://lasixor.com/]buy generic furosemide[/url]