一次会话中包含多次请求和相应,浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止,会话结束
再一次会话范围内的多次请求间共享数据
客户端会话技术,将数据保存到客户端
@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建Cookie对象
Cookie cookie=new Cookie("msg","hello_world");
//发送Cookie
response.addCookie(cookie);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
@WebServlet("/CookieServlet2")
public class CookieServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取Cookie
Cookie[] cookies=request.getCookies();
//遍历Cookies 获取Cookie值
if(cookies!=null){
for(Cookie cookie:cookies){
String name=cookie.getName();
String value=cookie.getValue();
System.out.println(name+" : "+value);
}
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
Cookie的发送是通过在客户端发送请求到服务器端的过程后,浏览器端在返回response时向响应头中添加set-cookie:name=value实现。Cookie的接收是通过客户端在向服务器端发送请求前向请求头中添加cookie:name=value来实现的。两个实现原理均是在遵循HTML协议的前提下所实现
判断用户是否为初次访问当前页面,如果是则告知用户初次访问,如果不是,则显示用户上一次访问页面的时间
package cn.ywrby.Cookie;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/CookieDemo1")
public class CookieDemo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//获取所有cookie
Cookie[] cookies=request.getCookies();
//是否找到lastTime的cookie
boolean flag=false;
//遍历cookie列表判断是否访问过该网页
if(cookies!=null&&cookies.length>0) {
for (Cookie cookie : cookies) {
//判断是否存在lastTime的cookie
if (cookie.getName().equals("lastTime")) {
//存在该cookie表示之前访问过
//获取上次访问时间
String t1=cookie.getValue();
//打印上次访问时间
response.getWriter().write("<h1>欢迎再次访问,您上次访问时间是:"+t1+"</h1>");
//获取当前时间
Date date=new Date();
//格式化时间数据
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
String t2=sdf.format(date);
//重新传值并传回response中
cookie.setValue(t2);
response.addCookie(cookie);
//修改flag值
flag=true;
}
}
}
//未找到lastTime的cookie表示初次访问
if(!flag||cookies==null||cookies.length==0){
//获取当前时间
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
String t=sdf.format(date);
//创建cookie并传入response中
Cookie cookie=new Cookie("lastTime",t);
response.addCookie(cookie);
//页面显示初次内容
response.getWriter().write("<h1>欢迎初次访问!</h1>");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有