优雅的实现拦截器及统一异常处理

面向所有Controller的方法做拦截,获取Cookie信息

@Aspect@Componentpublic class HomeworkAuthorizeAspect {    private Logger log = LoggerFactory.getLogger(HomeworkAuthorizeAspect.class);    @Pointcut("execution(public * com.xxx.homework.controller.*.*(..))")    public void verify(){}    @Before("verify()")    public void doVerify(){        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        HttpServletRequest request = attributes.getRequest();        // Cookie 查询        Cookie cookie = CookieUtil.get(request, CookieConstant.TOKEN);        if(null == cookie){            log.warn("Cookie中查不到token");            throw new AuthorizeException();        }    }}

拦截自定义异常

自定义异常,向上抛出异常进行统一拦截

@ControllerAdvicepublic class AuthorizeExceptionHandler {    @ExceptionHandler(value = AuthorizeException.class)    public ModelAndView handlerAuthorizeException(){        return new ModelAndView("");    }}

本文分享自微信公众号 - 服务端技术杂谈(ITIBB2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术碎碎念

Servlet响应的中文字符集问题

在Servlet中利用response向客户端浏览器输出中文时有时会遇到乱码问题,总结如下: response输出流有两种,一是以字节流输出,一是以字符流输出。...

38680
来自专栏技术碎碎念

servlet设置缓存时间以及文件的下载

缓存时间的设置: 1 public void doGet(HttpServletRequest request, HttpServletResponse res...

39070
来自专栏陈树义

Tomcat配置JNDI数据源

本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一、思考 从我们...

43290
来自专栏陈树义

Servlet的Listener介绍

  当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动、Web应用被停止、用户session开始、用户session结束等...

39350
来自专栏技术碎碎念

jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用

一、连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必...

35460
来自专栏带你撸出一手好代码

使用Java内置的Http Server构建Web应用

一、概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运...

36870
来自专栏技术碎碎念

数据的分页处理

当页面中要显示的内容过多需要分多页显示、或是数据量过大内存吃不消时,需要分页处理。 原理:每次从数据库中取出一定量的数据,通过jsp页面显示 实现: ①写一个类...

32550
来自专栏陈树义

从头学一次J2EE笔记

1、在Servlet3.5规范之前,Java Web 应用的绝大部分组件都通过web.xml 文件来配置管理, Servlet3.0 规范可通过Annotati...

31650
来自专栏陈树义

Java面试题:Servlet是线程安全的吗?

Servlet不是线程安全的。 要解释为什么Servlet为什么不是线程安全的,需要了解Servlet容器(即Tomcat)使如何响应HTTP请求的。 当Tom...

32270
来自专栏技术碎碎念

浅谈Struts2

学过SSH框架很长一段时间了,一直没有很系统的总结一下,这里先简单谈谈Struts2。 为什么要用Struts2? 这里列举一些Servlet的缺点: 1、每写...

35970

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励