关于一个自动登录使用@CookieValue取cookie值的问题。
来源:互联网 发布:五代十国 知乎 编辑:程序博客网 时间:2024/06/06 05:15
跳往首页的代码:
@Controllerpublic class IndexController { @RequestMapping(value = "/to_indexTest", method = RequestMethod.GET) public String to_index(@CookieValue(value="cookie_user",required=false)String cookie_user,HttpSession session,HttpServletRequest req){ Cookie[] cookies = req.getCookies(); User user= null; for(Cookie c :cookies){ String str = ""; if (c.getName() != null && c.getName().equals("cookie_user")) { str = c.getValue(); } if (!str.equals("")) { try { str = URLDecoder.decode(str, "utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } Gson gson = new Gson(); user = gson.fromJson(str, User.class); session.setAttribute("user", user); } } /*if( cookie_user != null ){ System.out.println("cookie中去出来的"+cookie_user); try { cookie_user = URLDecoder.decode(cookie_user,"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Gson gson = new Gson(); User userFromJson = gson.fromJson(cookie_user,User.class); System.out.println("转"+userFromJson.getUsername()); session.setAttribute("user",userFromJson); }*/ return "indexTest"; }在这里边,当我使用@CookieValue去取cookie存储的user对象时候,会出现乱码问题,就如上边被注掉的部分,但是使用request的获取cookie的方法这个思路来取,不会出现问题。个人感觉是这个注解的问题,还有待研究。还是需要研究一下。下边是把用户数据添加进cookie的代码:
@RequestMapping(value = "/login",method = RequestMethod.GET) public String login(String username, String password, String login_auto_login,HttpSession session, ModelMap map, HttpServletResponse response){ User user = loginServiceImp.queryUserByUsername(username,password); if( user != null ){ session.setAttribute("user",user); if (login_auto_login != null && !login_auto_login.equals("")) { //如果前台点击了自动登录,就放在cookie里边 Gson gson = new Gson(); String jsonUser = gson.toJson(user); try { jsonUser = URLEncoder.encode(jsonUser,"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(jsonUser);/* try { String test = URLDecoder.decode(jsonUser,"utf-8"); System.out.println(test); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }*/ Cookie cookie = new Cookie("cookie_user",jsonUser); cookie.setMaxAge(60 * 60 * 24 * 7); response.addCookie(cookie); } return "indexTest"; } else { map.put("msg","用户名或者密码不正确!"); return "login"; } }
阅读全文
0 0
- 关于一个自动登录使用@CookieValue取cookie值的问题。
- @CookieValue注解的使用
- @CookieValue注解的使用
- 关于一个指针取值的问题
- 使用cookie实现自动登录
- 使用Cookie实现自动登录
- springMVC(5)------CookieValue注解获取cookie值
- jsp中用cookie做的一个关于密码下次登录的时候能够自动显示小例子
- 一个关于HttpClient 的 Cookie 问题
- 关于VSS自动登录的问题
- 关于用户自动登录的问题
- Cookie的使用及取值
- 关于Session在一个Servlet取不到值的问题
- 一个关于“取数问题”的游戏
- @CookieValue注解 拿到cookie
- 关于Android使用Xutils的WebView保存Cookie登录
- symfony使用cookie来实现自动登录
- 使用cookie+过滤器实现自动登录
- Android Context 上下文 你必须知道的一切
- 物体复位问题
- tomcat各目录(文件)作用介绍
- mac下安装Nginx
- svnadmin hotcopy前,CentOS7挂载windows共享文件夹问题
- 关于一个自动登录使用@CookieValue取cookie值的问题。
- CATVehicle 调试过程中错误记录
- Linux C socket编程
- halcon阈值分割
- ACM算法-时间复杂度分析(5.有关时间复杂度递归的分析)
- github checkout常见用法
- JDBC的典型用法
- lintcode合并两个排序链表
- CentOS 7.3离线安装Clickhouse