1、Cookie 饼干
什么是 Cookie?
1、Cookie 翻译过来是饼干的意思。
2、Cookie 是服务器通知客户端保存键值对的一种技术。
3、客户端有了 Cookie 后,每次请求都发送给服务器。
4、每个 Cookie 的大小不能超过 4kb
如何创建 Cookie?
Servlet 程序中的代码:
protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException { //1 创建 Cookie 对象 Cookie cookie = new Cookie("key4", "value4"); //2 通知客户端保存 Cookie resp.addCookie(cookie); //1 创建 Cookie 对象 Cookie cookie1 = new Cookie("key5", "value5"); //2 通知客户端保存 Cookie resp.addCookie(cookie1); resp.getWriter().write("Cookie 创建成功"); }
服务器如何获取Cookie
服务器获取客户端的 Cookie 只需要一行代码:req.getCookies():Cookie[]
public class CookieUtils { /** * 查找指定名称的 Cookie 对象 * @param name * @param cookies * @return */ public static Cookie findCookie(String name , Cookie[] cookies){ if (name == null || cookies == null || cookies.length == 0) { return null; } for (Cookie cookie : cookies) { if (name.equals(cookie.getName())) { return cookie; } } return null; } }
Servlet 程序中的代码:
protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throwsServletException,IOException { Cookie[] cookies = req.getCookies(); for (Cookie cookie : cookies) { // getName 方法返回 Cookie 的 key(名) // getValue 方法返回 Cookie 的 value 值 resp.getWriter().write("Cookie[" + cookie.getName() + "=" + cookie.getValue()+"]<br/>");} Cookie iWantCookie = CookieUtils.findCookie("key1", cookies); // for (Cookie cookie : cookies) { // if ("key2".equals(cookie.getName())) { // iWantCookie = cookie; // break; // } // } // 如果不等于 null,说明赋过值,也就是找到了需要的 Cookie if (iWantCookie != null) { resp.getWriter().write("找到了需要的 Cookie"); } }