Cookie简述

本文介绍了如何在JSP中使用Cookie进行数据存储和检索。通过示例展示在a.jsp页面创建Cookie,然后在b.jsp页面读取这些Cookie的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是Cookie
Cookie是HTTP协议的规范之一,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据
首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来。
当客户端再次请求同一服务器时,客户端会在请求头中添加该服务器保存的Cookie,发送给服务器。
2. HTTP协议指定的Cookie规范
Cookie通过请求头和响应头在服务器与客户端之间传输;
Cookie大小限制在4KB之内;
一台服务器在一个客户端最多保存20个Cookie;
一个浏览器最多可以保存300个Cookie;
(但是浏览器并没有完全遵守)
3.Cookie作用
服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最型典
型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化
登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网
站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
4. Cookie与请求头和响应头
服务器向客户端发送Cookie的响应头为Set-Cookie,例如:Set-Cookie:cookiename=cookievalue
客户端向服务器发送Cookie的请求头为Cookie,例如:Cookie:cookiename=cookievalue
5. Servlet中向客户端发送Cookie
 Cookie cookie1 = new Cookie("Name", "Tom");
 response.addCookie(cookie1);
6. Servlet中获取客户端发送过来的Cookie
 Cookie[] cookies = request.getCookies();
 if(cookies != null) {
    for(Cookie c : cookies) {
      System.out.println(c.getName() + ":" + c.getValue());
    }
 }
-------------------------------------------------

a.jsp保存Cookie,b.jsp获取Cookie

-------------------------------------------------

a.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'a.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
   <body>
   <%
   		Cookie cookie1 = new Cookie("name","Tom");
        response.addCookie(cookie1);
   		Cookie cookie2 = new Cookie("number","101");
        response.addCookie(cookie2);
   %>    
  </body>
</html>
b.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'b.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <%
    Cookie[] cookies=request.getCookies();
    if(cookies!=null){
    	for(Cookie c:cookies){
    		out.print(c.getName()+":"+c.getValue());
    		out.write("<br/>");
    	}
    }
    %>
  </body>
</html>
*Cookie相关
1.Cookie生命周期
默认浏览器关闭后清除
*设置Cookie生命时长方法:
cookie.setMaxAge(intValue);
——intValue的单位为秒,表示Cookie的有效时间
2.Cookie路径
Cookie路径是指Cookie归还给服务器路径
Cookie路径是服务器创建改Cookie是设置的
默认路径:当前页面所在目录
3.Cookie的域
由于不同项目Cookie的共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值