添加自定义注解
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,356 条评论
博客作者 Genaistz
Если вы управляете хозяйством, ознакомьтесь, как [url=https://factos.ru]зернодробилка для хозяйства[/url] может улучшить вашу работу и увеличить производительность.
博客作者 أنابيب الراتنج الإيبوكسي
Stainless Steel Pipes : Corrosion-resistant and durable, stainless steel pipes are ideal for various industrial applications. ElitePipe Factory in Iraq provides premium stainless steel pipe products.
博客作者 online pharmacies
Thanks , I have just been searching for info approximately this subject for ages and yours is the best I’ve found out till now. However, what in regards to the conclusion? Are you positive about the supply?
博客作者 Arthurvot
Фабрика кухонных гарнитуров в течение Санкт-петербурге – этто чемодан надежный участник на твореньи кашеварных интерьеров. Я работаем на исследованию, изготовлении равным образом установке первоклассных кашеварных гарнитуров, тот или иной сочетают на себя язык, функциональность равным образом долговечность. Наша миссия – даровать клиентам персональные решения, сделанные из учётом их пожеланий равно надобностей, чтобы любил шакша стала приятным и еще удобным пунктом чтобы животу равно творчества https://www.tivokya0kuhnishki.ru/.
博客作者 Arthurvot
Фотофабрика кухонных гарнитуров на Санкт-петербурге – это чемодан фундаментальный партнер в течение существе кашеварных интерьеров. Я специализируемся сверху исследованию, изготовлении и установке высококачественных кашеварных гарнитуров, коие сочетают в течение себе язык, функциональность также долговечность. Наша миссия – обеспечить посетителям индивидуальные заключения, учрежденные кот учётом ихний пожеланий да надобностей, чтобы всякая кухня принялась приятным а также спокойным наделом чтобы бытию да творчества https://tivokya0kuhnishki.ru.
博客作者 canadian pharmaceutical companies
Greetings! Very helpful advice in this particular article! It is the little changes that make the greatest changes. Thanks a lot for sharing!
博客作者 Arthurvot
Фабрика кашеварных гарнитуров в течение Санкт-петербурге – это ваш фундаментальный партнер в течение существе кашеварных интерьеров. Я специализируемся на исследованию, производстве и аппарате высококачественных кашеварных гарнитуров, какие сочетают в течение себе язык, функциональность равным образом долговечность. Наша делегация – отдать посетителям субъективные постановления, учрежденные вместе с учётом ихний пожеланий а также потребностей, чтобы каждая шакша стала приятным и спокойным постом для животе и творчества https://tivokya0kuhnishki.ru.
博客作者 Arthurvot
Фабрика кухонных гарнитуров на С-петербурге – этто чемодан фундаментальный участник в твари кашеварных интерьеров. Мы работаем сверху разработке, производстве и еще аппарате высококачественных кашеварных гарнитуров, какие соединяют в течение себя стиль, функциональность равным образом долговечность. Наша миссия – отдать покупателям субъективные ответа, основанные с учётом ихний пожеланий и необходимостей, чтоб любил кухня встала приятным а также спокойным площадью чтобы бытью и творчества https://tivokya0kuhnishki.ru.
博客作者 online pharmacies in usa
Awesome things here. I’m very happy to peer your article. Thank you so much and I am looking forward to contact you. Will you please drop me a e-mail?
博客作者 Arthurvot
Фотофабрика кухонных гарнитуров на С-петербурге – этто ваш фундаментальный участник в течение создании кашеварных интерьеров. Я специализируемся сверху разработке, фабрике а также установке первоклассных кашеварных гарнитуров, коим сочетают в себе язык, функциональность и долговечность. Наша миссия – предоставить клиентам индивидуальные заключения, построенные с учётом их пожеланий равно необходимостей, чтобы любая шакша застопорилась уютным равным образом спокойным местностью для века равно творчества https://www.tivokya0kuhnishki.ru/.
博客作者 MiltonReupe
Гидроизоляция это ключевой элемент в строительстве, обеспечивающий охрану объектов от воздействия влаги и воды. В большой зависимости от критерий эксплуатации и материала конструкции, выбирается определенный тип гидроизоляции. Рассмотрим главные разновидности и их применения.
Рулонные водоизоляционные материалы применяются для защиты кровель и фундаментов. Они посещают на основе битума и полимеров.
Жидкие гидроизоляторы используются для сотворения бесшовного покрытия. Они посещают на основе:
Этот тип просачивается в структуру бетона и наполняет микротрещины, обеспечивая надежную защиту. Применяется в большей степени для фундаментов и подвалов. Проникающая гидроизоляция эффективно справляется с постоянным воздействием воды.
Мембранные системы часто употребляются для крыши и находящийся под землей конструкций. Такой метод обеспечивает надежную защиту от осадков и грунтовых вод.
Гидрофобные добавки в бетон или раствор помогают предупредить проникновение влаги. Они идеально подходят для творенья водонепроницаемых конструкций, в том числе бассейны и резервуары.
Выбор типа гидроизоляции
В момент выбора гидроизоляции главно учесть:
В заключение, выбор гидроизоляции зависит от множества факторов. Правильное решение поможет продлить срок службы строительных объектов и избежать суровых проблем с влажностью.
博客作者 https://best-viagra.ru
https://best-viagra.ru
博客作者 cialis generic pharmacy online
I really love your site.. Great colors & theme. Did you develop this website yourself? Please reply back as I’m planning to create my own personal website and want to learn where you got this from or just what the theme is named. Many thanks!
博客作者 national pharmacies online
If you wish for to increase your experience just keep visiting this site and be updated with the most up-to-date information posted here.
博客作者 MatthewZen
[url=https://t.me/night_samara]проверенные проститутки самара[/url]
Задумались, где найти девушку легкого поведения в городе Самара? Мы предлагаем профессиональные индивидуалки этого города для вашего удовольствия и релакса! Мы предлагаем только профессиональные проститутки с идеальной внешностью и безупречным сервисом. Планируете пригласить индивидуалку на вечер? Обращайтесь к нам, и ваши фантазии станут реальностью!
Не упустите шанс провести досуг с самыми привлекательными индивидуалками города Самара. ??