定义:

  • cookie:小甜饼,在互联网上则是指小段的文本信息,由服务器端生成并发送给浏览器保存在客户端(以key/value形式保存到客户端指定目录)。
  • 在用户提交的请求中也会包括在客户端保存的所有的cookie对象。
  • 用途:通过使用cookie,可以记录用户名和密码,标识用户身份,跟踪重复用户等。
  • 注意:在使用cookie时,应保证客户机上允许使用cookie。( 设置工具-Internet选项之隐私选项

常用方法

  1. 可以使用response对象的 addCookie() 方法将一个cookie对象发送到客户端。
  2. 可以通过request对象的 getCookies() 方法获取所有的cookie对象的集合;
  3. 通过cookie对象的 getName() 方法获取指定名称的cookie对象;
  4. 通过 getValue() 方法获取cookie对象的值。

简单例子:

JSP cookie详解复习_表单

  1. 新建两个jsp文件,index为表单,将表单发送到deal.jsp中。
  2. 当用户是第一次登陆时:忽略其他代码,这里只需看框柱的表单
  3. 将表单信息发送到deal.jsp文件

    代码思路:
  • 通过request获取到index中表单的信息。
  • 获取用户当前的注册时间
  • 创建cookie对象,前者是cookie名字,后者是cookie内容,自己制定一个分隔符。
  • 设置Cookie有效时间,cookie.setMaxAge()
  • 用响应对象response的addCookie方法,把该cookie添加。
<%
String user = request.getParameter("user");

//代表当前用户登录时间
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd~HH:mm:ss");
String today = df.format(date);

//生成cookie,前者是cookie名字,后者是cookie内容,自己制定一个分隔符。
Cookie cookie = new Cookie("mrCookie", user+"#"+today);

//设置cookie的有效期
cookie.setMaxAge(15);

response.addCookie(cookie);

%>
  1. 回到index.jsp页面,当用户第一次登陆时会执行上述两步,当再次登陆时,则应先判断。

    代码思路:
  • 获取所有cookie
  • 初始化用户名和时间
  • 如果该cookie不为空,则遍历cookie对象集合,若cookie对象的名字等于deal.jsp文件中设置的,则把值赋给 usertoday
  • 进行判断,若不为空则说明之前有cookie。

index.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//1.获取所有cookie
Cookie[] cookies = request.getCookies();
//登录用户&时间
String user = "";
String date = "";
if(cookies!=null){
//遍历cookie对象集合
for(int i = 0; i < cookies.length; i++){
if(cookies[i].getName().equals("mrCookie")){
//如果cookie对象的名称为mrCookie
user = cookies[i].getValue().split("#")[0];
date = cookies[i].getValue().split("#")[1];
}
}
}
if("".equals(user)&&"".equals(date)){
%>
游客你好,欢迎您初次光临!
<form action="deal.jsp" method = "post">
请输入姓名:<input name = "user" type = "text" value = "">
<input type = "submit" value = "登录">
</form>
<%
} else {
%>
欢迎[<b><%=user %></b>]再次光临
您登陆时间为:<%=date %>
<%
}
%>

</body>
</html>

效果图:

JSP cookie详解复习_表单_02


JSP cookie详解复习_客户端_03