【问题标题】:Sessions in Spring MVCSpring MVC 中的会话
【发布时间】:2016-01-21 03:14:41
【问题描述】:

我想知道 spring mvc 中如何使用会话来保留该值直到用户登录。

我在某个地方找到了 model.addAttribute("session_name",username);,用于在 jsp 页面中创建会话并以 ${username} 的身份访问。它是 web 可以在所有页面中定义和访问用户名变量的真正方式吗?

如何检查变量名称为username 的会话是否存在? 在 JSP 中我曾经使用

if(null == session.getAttribute("username")){  
  // User is not logged in.  
}else{  
  // User IS logged in.  
} 

如何签入spring mvc?

【问题讨论】:

    标签: java spring jsp spring-mvc


    【解决方案1】:

    当您需要时,spring 容器已经创建了会话,只需将其放入控制器方法的参数中,它将被注入。 用户登录示例

    @RequestMapping(value=("login"),method=RequestMethod.POST)
    public String login(@RequestParam("name")String name,@RequestParam("pass")String pass,@RequestParam("gName")String gName,HttpSession session
            ) {
    
        User u1=new User();
        u1.setName(name);
        u1.setgName(gName);
        u1.setPass(pass);
        User u2=dao.findById(name);
        if(u2!=null)
        { if(u1.getPass().equals(u2.getPass())&&u1.getgName().equals(u2.getgName()))
            {
    
                session.setAttribute("user", u1);
                return "welcome";
            }
            else
            {
                return "error";
            }
        }
        else
        {
            return "error";
        }
    
    
    }
    

    现在您可以通过以下方式在任何jsp页面中获取它:

    if(session.getAttribute("user")!=null)
    {
        User user=(User)session.getAttribute("user");
    
    }
    else 
    {
       out.print("Log in please");
    
     }
    

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2020-12-16
      • 2012-04-30
      • 2011-04-25
      • 2017-12-18
      相关资源
      最近更新 更多