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; }
时间: 2024-02-14 19:14:25 浏览: 70
这段代码是关于 Cookie 的操作。其中 addCookie 方法用于向客户端添加 Cookie,getCookieInfo 方法用于获取客户端传回的 Cookie 信息。在 addCookie 方法中,首先通过 getCookieInfo 方法获取客户端传回的 Cookie 信息。如果信息为空,则将 search 参数添加到 Cookie 中;如果信息不为空,且不包含 search 参数,则将 search 参数添加到 Cookie 信息中;如果信息不为空,且已经包含了三个参数,则将第二个参数删除,并将 search 参数添加到 Cookie 信息中。最后,通过 response.addCookie 方法将 Cookie 添加到客户端。在 getCookieInfo 方法中,首先通过 request.getCookies 方法获取客户端传回的 Cookie 数组,然后遍历数组,找到名为 "search" 的 Cookie,并获取其值作为返回值。
相关问题
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); }
这段代码是用来实现添加 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,实现在不同的请求之间共享数据的功能。
阅读全文