Spring MVC中的会话

时间:2016-01-21 03:14:42

标签: java spring jsp spring-mvc

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

某个地方我发现model.addAttribute("session_name",username);用于创建会话&在jsp页面中以${username}访问。这是网络可以定义的真实方式吗?在所有页面中访问用户名变量?

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

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

如何查看spring mvc?

1 个答案:

答案 0 :(得分: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");

 }