【发布时间】:2018-07-01 01:28:22
【问题描述】:
我有一个登录控制器,因为我定义了一个会话变量,现在我想在我的应用程序的所有剩余控制器中访问该会话变量?
这是我的登录控制器代码 sn-p
@RequestMapping(value = "/login", method = RequestMethod.POST,produces = "application/json")
public @ResponseBody Map<String, String> validateUser(@RequestBody String loginParameters,HttpServletRequest request) throws Exception {
try{
HttpSession session=request.getSession();
JSONObject json = new JSONObject(loginParameters.trim());
String un=json.getString("username");
session.setAttribute("username", un);
这是我的 ProfileController 代码 sn-p
@Controller
public class ProfileController {
@RequestMapping(value = "/getUserData", method = RequestMethod.GET,produces = "application/json")
public @ResponseBody Map<String, String> getUser(HttpServletRequest req) throws Exception {
try{
HttpSession session=req.getSession();
String loggedInUser=(String)session.getAttribute("username");
System.out.println("UserName is "+ loggedInUser);
现在我想在我的另一个配置文件控制器中访问这个会话变量(用户名)。我试过这样,但我在 ProfileController 中得到了空指针期望。
【问题讨论】:
-
使用
sesssion.getAttribute("key")。 -
session.getAttribute("username")
-
在同一个控制器中,我们可以访问 session.getAttribute("key") 但在这个控制器之外我们如何获得相同的会话引用?
-
你试过了吗?这就是它被称为会话的原因,它将在整个用户会话中可用。
标签: java spring spring-mvc session