request.getCookies(); 返回的是一个Cookie数组。
- 虽然Cookie是一个键值对结构,但是它并没有给咱们提供一个根据键获取值的方法。 //Cookie的遍历与取值、改值 Cookie [] cookies =request.getCookies(); for (Cookie cookie : cookies) { //for循环遍历 if ("username".equals(cookie.getName())) { //通过getName取值 cookie.setValue("lisi"); //通过setValue改值 response.addCookie(cookie); } }
- 修改Cookie 一旦Cookie发给浏览器以后,服务器便不能直接修改Cookie, 但是可以通过使用同名Cookie来替换的老Cookie方式来间接的修改 > Cookie的有效时间 - Cookie的默认有效时间为一次会话,当关闭浏览器时,Cookie将失效。 - 通过setMaxAge(秒数)来设置Cookie的有效时间 -//当秒数大于0时,有效时间会设置为相应的秒数 cookie.setMaxAge(30); cookie.setMaxAge(0);
- 设置一个长久有效的Cookie cookie.setMaxAge(60*60*24*365*10) - 在程序中使Cookie立即失效 - 可以使用一个同名的,立即失效的Cookie来替换已有Cookie Cookie cookie1=new Cookie("key1", "zhang"); Cookie cookie2=new Cookie("key2", "li"); cookie1.setMaxAge(0); response.addCookie(cookie1); response.addCookie(cookie2); 在第二次访问时,请求头中 没有cookie1的信息 > Cookie的Path - path指的Cookie的路径() - 所谓的Cookie路径就是指, - Cookie 访问/WebCookie/1.js (在不设置cookie路径 ,访问同一项目的其他页面也会带着Cookie信息) p - 通过setPath()方法来设置Cookie有效路径 //修改Cookie的有效路径 //Cookie的路径由浏览器解析,所以设置路径时需要加上项目名 cookie.setPath(request.getContextPath()+"/hello"); Cookie cookie1=new Cookie("key1", "zhang"); Cookie cookie2=new Cookie("key2", "li"); cookie1.setMaxAge(0); cookie2.setPath(request.getContextPath()+"/1.jsp"); response.addCookie(cookie1); response.addCookie(cookie2);
访问1.jsp的页面带cookie信息 index.jsp 的请求不带cookie信息 > 应用: 1.可以用来保持用户的登录状态 2.可以用来记录用户上次输入的用户名 3.广告的推送 > Cookie练习 > 模拟一个taobao的功能,保存用户输入用户名。 > 用户在login.jsp输入用户名和密码 > 请求发送个LoginServlet > LoginServlet收到请求行,检查用户名和密码是否正确。(默认登录成功) 如果正确,则将用户名保存到一个Cookie中,并发送给浏览器 ,重定向到login-success.jsp 如果错误,转发到login.jsp //Jsp <form action="${pageContext.request.contextPath}/cookie" method="get"> 用户名:<input type="text" name="username" value=${cookie.value}><br> 密码: <input type="password" name="pwd" ><br> <input type="submit" value="登录"> </form> //servlet中 Cookie cookie=new Cookie("username", "zhangsan"); response.addCookie(cookie); String username = request.getParameter("username"); String pwd = request.getParameter("pwd"); if (username.equals(cookie.getValue())) { response.sendRedirect(request.getContextPath()+"/1.jsp"); } }
只是简单的模仿一下,只是用于记录这个知识点。
转载于:https://www.cnblogs.com/Actexpler-S/p/7359630.html
相关资源:JAVA上百实例源码以及开源项目