1.比如订单功能,每次使用都要判断用户是否登录
每次都要写比较麻烦,可以把判断登录的功能写
在过滤器中,让他自动去识别.
后端:
1.创建一个过滤器ZAuthFilter,开头加Z,用注解方法
使用过滤器按字符排序执行,让他往后排
2.把判断登录的功能的代码粘贴到过滤器中
请转一下request和response
3.把baseservlet里的nologin方法复制进来
4.user==null就使用nologin方法,不等于就不往下走了
(不要使用):
问题:粒度粗,意味着所有order模块下的方法都要去
验证用户
2.使用注解将权限控制在方法级别,粒度更细致
后端:
1.在web包内创建一个annotation包,创建一个
Auth注解.
2.注解内加入@Retention标识,把生命周期控制在
RUNTIME到运行时
加入@Target标识,限制其只能在METHOD方法
和Type类上使用.多个使用value={}格式添加
3.需要在方法执行之前判断,在BaseServlet中
获取方法后,invoke执行方法之前if判断有没
有这个注解,使用method.isAnnotationPresent(传人.class)
反射方法获得判断Auth注解有没有.
4.有的话把验证用户登录功能的代码复制过来