关于HttpSession 与 SpringMVC 中session注入的冲突!

给你分享下最代码的登录和退出代码片段:

登陆成功代码片段:

1 session.setAttribute("user", user);

退出登录代码片段:

1 User user = (User) session.getAttribute("user");
2 session.removeAttribute(user);
3 response.sendRedirect("/");

如果有cookie的操作,则需要登录的时候写入cookie,代码如下:

1 Cookie cookie = new Cookie(GlobalConstants.COOKIE_NAME_ZUIDAIMA_ID,Security.encryptUserId(userId));
2 cookie.setPath("/");
3 cookie.setDomain(".zuidaima.com");
4 cookie.setMaxAge(60 60 24 365 10);

退出的时候需要删除该cookie

1 Cookie cookie = new Cookie(GlobalConstants.COOKIE_NAME_ZUIDAIMA_ID,Security.encryptUserId(userId));
2 cookie.setPath("/");
3 cookie.setDomain(".zuidaima.com");
4 cookie.setMaxAge(0);

注意:删除客户端cookie只需要设置cookie的max age值为0,并且必须给客户端response时set cookie才会删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringMVC ,使用 Session 非常简单。可以通过在 Controller 的方法参数添加 HttpSession 类型的参数来获取 Session 对象,然后就可以直接使用 Session 对象了。 下面是一个简单的例子,演示了如何在 SpringMVC 使用 Session: ```java @Controller public class MyController { @RequestMapping("/login") public String login(HttpSession session, String username, String password) { // 根据用户名和密码进行登录验证 boolean isAuthenticated = authenticate(username, password); if (isAuthenticated) { // 如果验证成功,则将用户信息存储到 Session session.setAttribute("username", username); return "redirect:/dashboard"; } else { return "redirect:/login?error=1"; } } @RequestMapping("/dashboard") public String dashboard(HttpSession session, Model model) { // 从 Session 获取当前用户的用户名 String username = (String) session.getAttribute("username"); if (username != null) { // 如果用户名存在,则将其作为 Model 的属性传递给视图 model.addAttribute("username", username); return "dashboard"; } else { return "redirect:/login"; } } } ``` 在上面的例子,`login` 方法获取到了 HttpSession 对象,并使用 `setAttribute` 方法将用户名存储到 Session 。在 `dashboard` 方法,可以通过 `getAttribute` 方法获取 Session 存储的用户名,并将其作为 Model 的属性传递给视图。如果 Session 不存在当前用户的信息,则重定向到登录页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值