java中的session对象如何获取

编辑: admin 分类: java 发布时间: 2021-12-03 来源:互联网
目录
  • 获取session对象
    • 1.在springmvc中
    • 2.通过ServletActionContext获取
  • 在session存取值和对象的方法

    获取session对象

    1.在springmvc中

    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    

    2.通过ServletActionContext获取

    HttpServletRequest request = ServletActionContext.getRequest(); 
       HttpSession session = request.getSession(); 
    String userSession = request.getSession().getAttribute("userId")+StringUtil.EMPTY;

    在session存取值和对象的方法

    在后台方法中存值的一种方式,将对象或者值用session的setAttribute(key,value);方法存值,

    //登录方法
    public BaseResult user_login(String userNO,String password,HttpSession session){
       
       BaseResult result = new BaseResult();
       User user = userService.login(userNO, password);
       loginJSON json= new loginJSON();
       if (user==null) {
        result.setSuccess(false);
        result.setMessage("用户名/密码错误");
       } else {
        result.setSuccess(true);
        result.setMessage("登陆成功");
        json.setUserData(user);
        json.setAllDept((List)userService.getAllDep(userNO).get("allDept"));
        json.setAuthDept((List)userService.getAllDep(userNO).get("authDept"));
        json.setCorwd(userService.getGE("corwd"));
        json.setMeetType(userService.getGE("meetType"));
        json.setOrganizer(userService.getGE("organizer"));
        result.setData(json);
       }
       //将对象封装到session中
       session.setAttribute("user",user);
       return result;
      }

    取值我们可以用HttpServletRequest得到session,用session.getAttribute(key);得到value。

    注意:

    HttpServletRequest可以当参数在方法中传递(需要一层层传递,并不推荐),也可以用如下代码在方法中的得到session。

    HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
         HttpSession session=request.getSession();
         User user=(User) session.getAttribute("user");
         //

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

    【本文由:日本cn2服务器 提供 转载请保留URL】