添加自定义注解
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,303 条评论
博客作者 http://www.pictureshack.ru/gallerymap565.htm
https://www.pictureshack.ru/gallerymap565.htm
博客作者 canadian pharmacy drugs online
After checking out a few of the articles on your web site, I seriously appreciate your technique of writing a blog. I saved as a favorite it to my bookmark website list and will be checking back soon. Please visit my web site as well and let me know your opinion.
博客作者 Scepkacit
Купить рабочую спецодежду blatta.ru
Предлагаем Вам товарный знак спецодежды одежды для рабочих BLATTA, который специализируется на качестве и прочности продукции. Мы производим одежду, которая может предохранить человека даже в самой острой ситуации. Дается пожизненная гарантия на одежду, чтобы вещи смогли служить Вам очень долго. А вдобавок, каждое изделие проходит реальную проверку, прежде чем попасть в каталог продаж. Подробнее на сайте blatta.ru смотрите уже сегодня.
Если Вы планировали найти [url=https://blatta.ru/katalog-tovarov/shortyi/polukombinezon]полукомбинезон рабочий[/url] в интернете, то переходите на наш интернет сайт. Посмотрите каталог нашей очень долговечной, исключительной рабочей спецодежды. Завершилось то время, когда потребители выделяли невысокие цены, игнорируя качество. Сегодня, в век инновационных технологий, новинки приходят и в область рабочей одежды. Оцените сами, приобретая наши представленные образцы.
На онлайн сайте blatta.ru Вы можете приобрести: футболки, шорты, полукомбинезоны, ветровки, жилеты для каменщиков, куртки и другое. Любой образец имеет подробное описание, состав, рекомендации, фото и видео обзор. Действует бесплатная доставка от 3х тысяч рублей, безвозмездный возврат в течение 30 дней.
По вопросу [url=https://blatta.ru/]рабочий жилет с карманами[/url] звоните нам. Мы на связи 24 часа, без выходных. Наш номер телефона +7(912)447-84-22 или пишите нам в мессенджеры. Находимся по адресу: г. Ижевск, Воткинское шоссе, 16 В. Время работы по будням с 9:00 до 18:00. Доставляем одежду по всей России. Успейте приобрести по привлекательным ценам.
博客作者 https://www.autoprospect.ru/daewoo/nexia/
https://www.autoprospect.ru/daewoo/nexia/
博客作者 Normancem
ISO сертификация становится важным нюансом деятельности в почти во всех отраслях, обеспечивая стандарты свойства, эффективности и безопасности. В строительстве значение ISO системе сертификации необыкновенно подчеркивается в контексте саморегулируемых организаций (СРО). В данной статье рассматривается значимость ISO системе сертификации для СРО, ее достоинства и ключевые стандарты, используемые в отрасли строительства.
Что такое СРО?
Саморегулируемые организации создаются в строительной сфере для продвижения профессионализма, установления стандартов и обеспечения соблюдения общепризнанных мерок среди собственных членов. Во многих странах СРО играют ключевую роль в регулировании строительной практики, обеспечении безопасности и поддержании качества. Они довольно частенько выступают в качестве основных органов для лицензирования и проверки квалификации строй компаний.
Важность ISO сертификации для СРО
ISO сертификация предоставляет несколько преимуществ для СРО в строительном секторе:
Ключевые ISO эталоны для строительной отрасли
Существует несколько ISO стандартов, необыкновенно актуальных для СРО и строительной отрасли:
博客作者 canadian pharmaceuticals online safe
Amazing things here. I am very happy to peer your post. Thank you so much and I am looking forward to touch you. Will you kindly drop me a mail?
博客作者 panacea pharmacy
I am actually grateful to the holder of this site who has shared this impressive article at at this place.
博客作者 canadian pharmaceuticals usa
What’s up to all, how is all, I think every one is getting more from this web site, and your views are good in support of new users.
博客作者 http://www.kinospace.ru/info/interviews
https://www.kinospace.ru/info/interviews
博客作者 mexican pharmacies
Hi to every single one, it’s truly a nice for me to visit this site, it includes precious Information.
博客作者 Pashagazm
Ищете способ взять займ онлайн? Узнайте, как легко [url=https://take-loan.ru]взять займ онлайн[/url] и получить деньги круглосуточно.
博客作者 canadian pharmaceuticals online safe
I loved as much as you’ll receive carried out right here. The sketch is tasteful, your authored subject matter stylish. nonetheless, you command get bought an impatience over that you wish be delivering the following. unwell unquestionably come more formerly again since exactly the same nearly a lot often inside case you shield this increase.
博客作者 canadian pharmaceuticals online shipping
You can definitely see your enthusiasm in the work you write. The sector hopes for more passionate writers such as you who aren’t afraid to mention how they believe. At all times go after your heart.
博客作者 pharmacy online drugstore
Great weblog right here! Also your web site rather a lot up fast! What web host are you the use of? Can I am getting your associate hyperlink for your host? I wish my site loaded up as quickly as yours lol
博客作者 http://blogrider.ru/main_themes/potatoes/
https://blogrider.ru/main_themes/potatoes/