入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

java_springMVC_session

创建时间:2018-05-12 投稿人: 浏览次数:224

session的含义找度娘,这里说说常用的用法

1) 用于登录:

在登录时设置session;

@RequestMapping("/dologin")

@ResponseBody

public String dologin(HttpServletRequest request, String username, String password){

request.getSession().setAttribute("username", username);

return "true";

}

在拦截器中获取session:

String userId = (String)request.getSession().getAttribute("username");

if (userId != null){

return true;

}else{

response.sendRedirect(request.getContextPath()+"/user/login");

}

return false;

在同一个浏览器下访问,如果没有登录过则会获取不到session,跳转到登录页面。如果登录过,则不受影响。

注:上面的代码只是个小例子,没有区分用户。完善一点的做法是登录时创建一个guid写入session,使用map将guid和用户信息存起来,拦截器中获取session中的guid,从而获取用户信息再进行业务判断。

 

2) 用于传参:

设置session后可以在页面中直接获取。如上面登录时设置了username属性。在页面中可直接获取:

<p>

session:username----${username}

</p>

只要登录过(request调用过session的setAttribute方法)。

在其他任何页面都可以通过${username}获取session中的值。

 

3) 用于注销:

清空session中的所有信息:

@RequestMapping("/loginout")

public String loginout(HttpServletRequest request){

// 清除session 的所有属性

//request.getSession().invalidate();

// 清除单个session 的属性值

request.getSession().removeValue("username");

// 清除单个session 的属性

//request.getSession().removeAttribute("username");

return "user/login";

}

上面的三种清除方式都可以达到注销的目的,清除属性的值最符合业务场景。

访问:http://localhost:8080/springMVC3/user/loginout后,当前页面跳到登录页面。

其他页面也无法访问,因为拦截器中已获取不到session中的内容,跳到登录页面。

 

阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像