添加自定义注解
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 | 28,468 条评论
博客作者 approved canadian online pharmacies
Magnificent items from you, man. I’ve remember your stuff previous to and you are simply extremely great. I really like what you have received here, certainly like what you are saying and the way in which through which you assert it. You make it enjoyable and you continue to care for to stay it smart. I can not wait to read far more from you. This is actually a terrific site.
博客作者 24 hour pharmacy
Excellent article. I am going through some of these issues as well..
博客作者 Pesoulagault
Конкурентоспособность вашего бизнеса напрямую зависит от безопасности и здоровья ваших сотрудников. Внедрение актуальных стандартов охраны труда является ключевой частью успешной работы всей организации. Наша компания предлагает качественные услуги по проведению [url=https://safetysystemsgroup.com/sout3/]соут специальная оценка условий труда цена[/url] которая помогает обнаружить и ликвидировать скрытые риски на рабочих местах. Мы обеспечиваем полный комплекс мероприятий: от первичного анализа до подготовки важной документации, что гарантирует соответствие вашего предприятия основным законодательным требованиям. Сотрудничая с нами, вы не только гарантируете безопасность своих сотрудников, но и улучшаете общую производительность работы, снижая вероятность травматизма на работе и заболеваний.
Наши специалисты обладают широким опытом и высокой квалификацией в области охраны труда. Применяя современные методы и высокотехнологичное оборудование, мы проводим детальный анализ условий труда на вашем предприятии. В процессе [url=https://safetysystemsgroup.com/sout3/]проверить соут[/url] учитываются все возможные факторы, воздействующие на здоровье работников, включая механические, химические и натуральные воздействия. Мы предлагаем персонифицированный подход к каждому клиенту, учитывая специфику его деятельности и тонкости производственного процесса. Это позволяет нам гарантировать наиболее правильные и результативные рекомендации по улучшению условий труда. Кроме того, мы обеспечиваем поддержку на всех этапах реализации предложенных мероприятий, содействуя вам осуществлять необходимые изменения без избыточных расходов и временных потерь.
Не задерживайте заботу о защите ваших сотрудников на потом. Проведение "спецоценки условий труда организации" — это не только юридическая необходимость, но и стратегическое решение, направленное на перспективное развитие вашего бизнеса. Вложив в охрану труда, вы гарантируете удобные и надежные условия для работы, что благоприятно сказывается на настрое и продуктивности сотрудников. Наши клиенты замечают впечатляющее снижение уровня травматизма и улучшение общего климата в коллективе после проведения нашей оценки. Доверьте защиту вашего бизнеса профессионалам и получите подтверждение качества и долговечности. Контактируйте с нами сегодня, чтобы договориться детали сотрудничества и начать путь к более защищенной и результативной рабочей среде.
博客作者 pharmacy intern
It’s truly a great and helpful piece of info. I am glad that you shared this useful information with us. Please stay us up to date like this. Thank you for sharing.
博客作者 Психолог ucv
Опытный психотерапевт в сети. Терапия возможна 24/7. Конфиденциально, продуктивно. Индивидуальный подход. Запишитесь сейчас! https://511-user-psiholog.tds-ka.ru/
博客作者 Психолог zeo
Надежный специалист по психическому здоровью в сети. Решение проблем возможна круглосуточно. Приватно, результативно. Выгодные цены. Не откладывайте на потом! https://1686-msk-psiholog.tds-ka.ru/
博客作者 Психолог cip
Надежный эксперт в области психологии удаленно. Терапия доступна 24/7. Конфиденциально, действенно. Первая консультация -50% от цены. Не откладывайте на потом! https://9431-msk-psiholog.tds-ka.ru/
博客作者 Pashaypid
Если встал вопрос в поиске финансов, ознакомьтесь с тем, как легко получить [url=https://let-zaim.ru]деньги в долг[/url], чтобы получить деньги на карту.
博客作者 canadian pharmaceuticals online shipping
naturally like your web-site however you have to test the spelling on quite a few of your posts. A number of them are rife with spelling problems and I find it very troublesome to inform the truth on the other hand I will definitely come again again.
博客作者 liga-dostavok
Доставки ценных грузов по России liga-dostavok.ru
По теме [url=https://www.liga-dostavok.ru/]транспортная компания по россии[/url] Вы на правильном пути. Сейчас очень много компаний, которые берутся доставить груз в срок и по небольшим ценам. У нас вдобавок множество радостных заказчиков, которые рекомендуют наш сервис друзьям. Первое наше достоинство это актуальная доставка, бесплатный забор от 5-ти заказов, несение материальной ответственности.
博客作者 Irwinmef
Каспи Казино стало одним из наиболее обсуждаемых онлайн-казино в Стране Казахстане. Оно завлекает внимание юзеров своим разнообразием игр, комфортным интерфейсом и привлекательными бонусами.
Игровое разнообразие
Каспи Казино делает отличное предложение широкий выбор азартных игр, включая игровые слоты, настольные забавы, видеопокер и живы казино. Это позволяет игрокам выбрать то, что им по душе. Известные провайдеры, такие как NetEnt и Microgaming, поставляют игры, что гарантирует высокое качество и интересный игровой процесс.
Бонусы и акции
Каспи Казино интенсивно [url=https://serverknowledgebase.co.uk/index.php?title=%D0%BA%D0%B0%D1%81%D0%BF%D0%B8%20%D0%BA%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%20%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD]https://serverknowledgebase.co.uk/index.php?title=%D0%BA%D0%B0%D1%81%D0%BF%D0%B8%20%D0%BA%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE%20%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD[/url] предоставляет привилегии своим юзерам. Новые игроки могут получить приветственный бонус, который увеличивает их шансы на выигрыш. Также проводятся регулярные акции, турниры и программки лояльности, что делает игру еще более привлекательной.
Безопасность и лицензии
Каспи Казино дает обеспечение высочайший уровень безопасности для собственных пользователей. Все транзакции шифруются, а сам веб-сайт имеет лицензии, которые гарантируют легальность его деятельности. Это позволяет игрокам наслаждаться игрой без лишних переживаний.
Заключение
Каспи Казино это отличное место для любителей азартных игр. С разнообразием игр, щедрыми призами и безопасностью, оно завоевало доверие многих игроков. Если вы ищете удобную платформу для ведения игры, Каспи Казино может стать вашим образцовым выбором.
博客作者 list of canadian pharmaceuticals online
I am sure this post has touched all the internet visitors, its really really nice piece of writing on building up new webpage.
博客作者 drugstore online
This is very interesting, You are a very skilled blogger. I’ve joined your rss feed and look forward to seeking more of your wonderful post. Also, I’ve shared your website in my social networks!
博客作者 pharmaceuticals online australia
I could not refrain from commenting. Perfectly written!
博客作者 Ritauqaq
needed secure [url=https://studio-sign.ru]electronic signature[/url] for remote work? Check out options to help to ensure security.