SpringMVC--RequestContextHolder

定义

持有上下文的Request容器

作用

SpringMVC的工具类,在任何java代码地方获取Request对象

封装层次

封装

1
2
3
4
5
6
7
//获取我的HttpServletRequest对象
public static HttpServletRequest getSession() {
//RequestContextHolder.getRequestAttributes()返回的是RequestAttributes,我们需要强转至ServletRequestAttributes才能使用getRequest()方法
return ((ServletRequestAttributes)(RequestContextHolder.getRequestAttributes())).getRequest();
}

//Request.getSession() 获得HttpSession对象

编写一个获取当前登陆用户上下文的工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//封装当前登陆用户的上下文
public class RoleContextTool {
private static final String ROLE_IN_SESSION = "role_in_session";

//获取我的httpsession对象
public static HttpSession getSession() {
return ((ServletRequestAttributes) (RequestContextHolder.getRequestAttributes())).getRequest().getSession();
}

//将用户对象放到session中去
public static void setCurrentRole(Role role) {
if (role == null) {
getSession().invalidate();
} else {
getSession().setAttribute(ROLE_IN_SESSION, role);
}
}

//获取当前用户对象
public static Role getCurrentRole() {
return (Role) getSession().getAttribute(ROLE_IN_SESSION);
}
}
赏个🍗吧
0%