Cookie
Cookie
1、会话(Session):用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程成为会话。
2、有状态会话:一个同学来过教师,下次再来教室,我们知道这个同学来过,就叫做有状态会话。
3、一个网站如何证明你来过:
3.1 服务端给客户端一个信件(cookie),客户端下次访问服务端,带上信件就可以了。
3.2 服务器登记你来过(session),下次你来的时候,自动匹配你。
4.1 cookie:cookie是一种客户端技术,如何在服务器上把东西发给客户端是通过响应;客户端把东西发给服务器是通过请求。
4.2 session:服务器登记你来过,利用session,服务器保留会话信息。我们可以把信息或数据放在session中。
常见应用:网站登录后,第二次访问不用登录了,直接就上去了。





1 package com.wang.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.http.Cookie; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import java.io.IOException; 9 import java.io.PrintWriter; 10 import java.util.Date; 11 12 public class CookieDemo01 extends HttpServlet { 13 @Override 14 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 15 //服务器,把上次你来的时间封装成一个cookie,你下次再来,就知道你来了 16 //解决中文乱码问题 17 req.setCharacterEncoding("utf-8"); 18 resp.setCharacterEncoding("utf-8"); 19 resp.setHeader("content-type", "text/html;charset=UTF-8"); 20 PrintWriter out = resp.getWriter(); 21 //Cookie,服务器从客户端获取 22 Cookie[] cookies = req.getCookies(); //这里返回数组,说明Cookie可能存在多个 23 //判断Cookie是否存在 24 if (cookies != null) { 25 //如果存在 26 out.write("上一次访问时间为:"); 27 for (int i = 0; i < cookies.length; i++) { 28 Cookie cookie = cookies[i]; 29 //获取cookies名字 30 if (cookie.getName().equals("lastLoginTime")) 31 { 32 long lastLoginTime = Long.parseLong(cookie.getValue()); 33 Date date = new Date(lastLoginTime); 34 out.write(date.toLocaleString()); 35 } 36 } 37 } else { 38 out.write("这是你第一次访问本站"); 39 } 40 //服务给客户端响应一个cookie 41 Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis() + ""); 42 resp.addCookie(cookie); 43 } 44 45 @Override 46 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 47 doGet(req, resp); 48 } 49 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 6 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 7 version="4.0" 8 metadata-complete="true"> 9 <!--注册和映射--> 10 <servlet> 11 <servlet-name>CookieDemo01</servlet-name> 12 <servlet-class>com.wang.servlet.CookieDemo01</servlet-class> 13 </servlet> 14 <servlet-mapping> 15 <servlet-name>CookieDemo01</servlet-name> 16 <url-pattern>/c1</url-pattern> 17 </servlet-mapping> 18 </web-app>



如关闭浏览器,则上述访问时间清空。

1 //设置有效期,有效期为一天 2 cookie.setMaxAge(24*60*60);




浙公网安备 33010602011771号