public static void addCookie(String search, HttpServletRequest request, HttpServletResponse response) { String info = getCookieInfo(request); if ("".equals(info)) { info = search; } else if (!info.contains(search)) { boolean isContain = info.contains("#"); if (isContain) { String[] strs = info.split("#"); if (strs.length == 3) { info = strs[1] + "#" + strs[2]; } } info = info + "#" + search; } Cookie cookie = new Cookie("search", info); response.addCookie(cookie); }
时间: 2024-02-14 08:22:36 浏览: 32
这段代码是用来实现添加 cookie 的功能的。它会在请求中获取之前的 cookie 信息,然后根据传入的搜索关键字进行判断和处理,最后将处理后的结果设置成新的 cookie,添加到响应中返回给客户端。具体来说,如果之前没有任何 cookie 信息,则直接将搜索关键字设置成新的 cookie;如果之前已经有了 cookie 信息,但是没有包含当前搜索关键字,则将当前搜索关键字添加到 cookie 信息的末尾;如果之前已经包含了当前搜索关键字,则不做任何处理。至于为什么要使用 # 分隔多个搜索关键字,可能是为了方便后续的读取和处理。
相关问题
public class CookieUtils { public CookieUtils() { } public static void addCookie(String search, HttpServletRequest request, HttpServletResponse response) { String info = getCookieInfo(request); if ("".equals(info)) { info = search; } else if (!info.contains(search)) { boolean isContain = info.contains("#"); if (isContain) { String[] strs = info.split("#"); if (strs.length == 3) { info = strs[1] + "#" + strs[2]; } } info = info + "#" + search; } Cookie cookie = new Cookie("search", info); response.addCookie(cookie); } public static String getCookieInfo(HttpServletRequest request) { String info = ""; Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length != 0) { Cookie[] var6 = cookies; int var5 = cookies.length; for(int var4 = 0; var4 < var5; ++var4) { Cookie cookie = var6[var4]; if ("search".equals(cookie.getName())) { info = cookie.getValue(); } } } return info; } }
这段代码是一个Java工具类,提供了两个静态方法,用于操作Cookie。具体来说,addCookie方法接收一个搜索关键字参数,一个HttpServletRequest对象和一个HttpServletResponse对象作为输入,用于向客户端添加一个名为"search"的Cookie。如果当前请求中已经存在名为"search"的Cookie,则将新的搜索关键字添加到Cookie中;如果Cookie中已经包含了3个搜索关键字,则删除最早的那个搜索关键字。getCookieInfo方法接收一个HttpServletRequest对象作为输入,用于获取当前请求中名为"search"的Cookie的值,并返回该值。如果当前请求中不存在名为"search"的Cookie,则返回空字符串。该类的使用可以方便地在Web应用程序中操作Cookie,实现在不同的请求之间共享数据的功能。
解释如下代码: @GetMapping("/login") public String toLogin(){ return "login"; } @PostMapping("/login") @ResponseBody public String login(@RequestParam("username")String username, @RequestParam("password")String password, @RequestParam("remember")String remember, HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException { String password_back = password; User login = userService.login(username, password); if (login!=null){ login.setLastTime(new Date()); userService.updateUser(login); HttpSession session = request.getSession(); session.setAttribute("loginUser",username); session.setAttribute("isAdmin",login.getAdmin()); User user = userService.findUserByUname(username).get(0); session.setAttribute("localUser",user); if (remember.equals("true")){ Cookie ucookie = new Cookie("unameCookie",username); Cookie pcookie = new Cookie("passwdCookie",password_back); ucookie.setMaxAge(24*3600); //cookies 保存一天 pcookie.setMaxAge(24*3600); response.addCookie(ucookie); response.addCookie(pcookie); } if ("true".equals(login.getAdmin())){ return "2"; //管理员登录返回2 } return "1"; // 普通登陆,返回1 } return "0"; // 失败,返回0.用户名或密码错误 }
这段代码是一个 Spring Boot 的 Controller 类,其中包含两个请求处理方法:toLogin 和 login。toLogin 方法处理 GET 请求,返回一个名为 "login" 的字符串,表示需要返回一个名为 "login" 的视图页面。login 方法处理 POST 请求,接收从浏览器传来的参数 username、password 和 remember,然后调用 userService 的 login 方法查询数据库,如果查询到一个 User 对象,表示用户名和密码验证通过,将登录用户信息存储到 HttpSession 中,并且设置了两个 Cookie(如果用户选择 "remember" 选项),然后根据用户的权限返回不同的字符串给浏览器。如果查询不到 User 对象,则表示验证失败,返回字符串 "0" 给浏览器。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![sql](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)