博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java cookie 覆盖_Java 会话技术 之cookie
阅读量:6469 次
发布时间:2019-06-23

本文共 2590 字,大约阅读时间需要 8 分钟。

会话技术Cookie&Session (记录这次会话中客户端的状态与数据

不登陆情况下,保存数据到本地)

一次会话:从打开浏览器访问某个站点,到关闭这个浏览器(关页面不算)

Cookie:数据存储在客户端本地,减少服务器端存储压力,客户端可清除

Session:将数据存储到服务器端,安全性相对好

Cookie技术(存放在客户端 内存/硬盘 不能是中文)

客户端 请求 加入购物车 手机

服务端 响应 set-cookie:goods-phone Cookie发送到客户端

客户端 请求 cookie:goods-phone 服务端接受Cookie

创建WEB05项目

src

com.oracle.demo01

CookieServlet.java

GetCookieServlet.java

AccessServlet.java

public class CookieServlet extends HttpServlet {//向客户端发送Cookie

public void doGet(...) throws ServletException, IOException {

//创建Cookie对象非中文

Cookie cookie=new Cookie("goods","vivophone");

//设置持久化时间,cookie信息存储在硬盘中,过期自动删除

//不设置持久化,cookie信息存储在内存中,浏览器关闭删除

cookie.setMaxAge(120);//设置Cookie持久化时间120秒

//设置Cookie携带路径 只有这个路径携带cookie

//不写携带路径 产生该cookie的servlet的同级路径都携带

cookie.setPath("/WEB0005");//WEB0005下的都携带

//cookie.setPath("/");//服务器下的都携带

//将Cookie存储的信息发送到客户端

response.addCookie(cookie);

//删除客户端cookie用同名同路径持久化时间为0的cookie覆盖

Cookie cookie = new Cookie("goods","vivophone");//创建cookie

cookie.setPath("/WEB0005"); //设置携带路径(与删除的一致)

cookie.setMaxAge(0); //设置持久化时间

response.addCookie(cookie); //发送Cookie

}

public void doPost(...){doGet(request, response);}

}

public class GetCookieServlet extends HttpServlet {//获取客户端的Cookie

public void doGet(...) throws ServletException, IOException {

Cookie[] cookies=request.getCookies();//客户端所有Cookie数据

//通过Cookie的名称得到想要的Cookie值

if(cookies!=null){ //cookie不为空

for(Cookie cookie:cookies){ //遍历

String cookieName=cookie.getName(); //获得cookie名

if(cookieName.equals("goods")){

String cookievalue=cookie.getValue();//获得cookie值

System.out.println(cookieName+":"+cookievalue);

}

}

}

}

public void doPost(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {

doGet(request, response);

}

}

public class AccessServlet extends HttpServlet {//记录上次访问时间

public void doGet(...) throws ServletException, IOException {

Date date=new Date(); //获取当前时间

SimpleDateFormat sdf= //时间格式

new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");

String currentTime=sdf.format(date); //格式 时间 字符串

Cookie cookie=new Cookie("LastTime",currentTime);//创建Cookie

cookie.setMaxAge(60*10); //设置Cookie持久化时间

response.addCookie(cookie); //发送Cookie到客户端

Cookie[] cookies=request.getCookies();//客户端所有Cookie对象

String lastTime=null;

if(cookies!=null){

for(Cookie c:cookies){ //遍历所有Cookie

if(c.getName().equals("LastTime")){ //名为"LastTime"的

lastTime=c.getValue(); //值赋给lastTime

}

}

}

response.setContentType("text/html;charset=utf-8");//解决乱码

if(lastTime==null){response.getWriter().write("您是第一次访问");}

else{response.getWriter().write("您上次访问时间为:"+lastTime);}

}

public void doPost(...) {doGet(request, response);}

}

转载地址:http://epdko.baihongyu.com/

你可能感兴趣的文章
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>
iOS快速清除全部的消息推送
查看>>
java单例模式深度解析
查看>>
什么是堆、栈?
查看>>
【学习笔记】阿里云Centos7.4下配置Nginx
查看>>
VuePress手把手一小時快速踩坑
查看>>
dnsmasq安装使用和体验
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
让所有IE支持HTML5的解决方案
查看>>
RDD之五:Key-Value型Transformation算子
查看>>
Windows 搭建Hadoop 2.7.3开发环境
查看>>
python操作mysql数据库实现增删改查
查看>>
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Cassandra 中的Snitch
查看>>
Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
查看>>