Cookie简单样例
程序员文章站
2022-07-05 09:43:17
Cookie测试样例package com.itheima.demo01;import java.io.IOException;import java.sql.Date;import java.text.SimpleDateFormat;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import...
Cookie可以把用户产生的数据存储到用户的浏览器中,一个Cookie只用标识一种信息,至少含有一个标识该信息的名称和值。一个web站点可以给一个浏览器发送多个Cookie,一个web浏览器可以存储多个web站点的Cookie,浏览器存放Cookie的大小和数量是有限制的。
Cookie的分类
默认级别的Cookie
指的是没有设置有效时间的Cookie,默认情况下只要关闭了浏览器,Cookie也会被销毁。(Cookie存在于浏览器的内存中,当关闭了浏览器Cookie就销毁了)
持久级别的Cookie
指的是有有效时间的Cookie,这种Cookie的内容不是保存在浏览器的内存中,将Cookie的内容保存(持久化)到硬盘上。这个时候,关闭浏览器,再次打开浏览器会加载硬盘上的文件,从而Cookie中数据就不会丢失。
Cookie测试样例
package com.itheima.demo01;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.itheima.uitl.cookieuitl;
import javax.servlet.http.Cookie;
/**
* Servlet implementation class visservlet
*/
public class visservlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie[] cooks = request.getCookies();
// 获取浏览器传回的cookie
Cookie cook = cookieuitl.findcookie(cooks, "dangqiantime");
// 传入Cookie数组和要查找的cookie名称去查找
if(cook==null) {
//如果返回值为空,说明是第一次访问
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<h1>您好,欢迎来到本网站!<h1>");
}else {
//不为空,不是第一次访问
String value = cook.getValue();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<h1>您好,您上次访问的时间为:"+value+"<h1>");
//将时间输出在浏览器上
}
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd-'at'-HH:mm:ss");
//错误,开始格式化时间的时候,中间有空格,但是在addCookie方法中,字符是不能存入的所以报错了,只要把空格替换掉就可以了
Date date = new Date(System.currentTimeMillis());
Cookie c = new Cookie("dangqiantime",formatter.format(date));
// 创建一个cookie并且把数据存入
c.setPath("/web03");
// 给Cookie设置有效路径,只有当浏览器访问这个路径,或者这个路径下的项目时,才会在访问时带上Cookie
c.setMaxAge(60*60);
// 设置有效时间,这个单位时秒,60*60指的是这个Cookie可以保存一个小时,一小时后这个Cookie就会被删除。
// 如果设置为0,那么这个Cookie就会马上被删除,如果没有添加这个项目,那么就会使用默认的Cookie
response.addCookie(c);
// 把创建的cookie进行回写
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Cookie工具类
package com.itheima.uitl;
import javax.servlet.http.Cookie;
//查找cookie的工具类
public class cookieuitl {
public static Cookie findcookie(Cookie[] cookie,String name) {
if(cookie==null) {
return null;
}else {
for(Cookie cook:cookie) {
if(name.equals(cook.getName())) {
return cook;
}
}
}
return null;
}
}
本文地址:https://blog.csdn.net/weixin_43654083/article/details/109557577
上一篇: Redis常用数据类型命令实例汇总