我想知道如何在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?
答案 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");
}