Cookie
来源:互联网 发布:网络戾气太重 编辑:程序博客网 时间:2024/06/16 02:11
一、引入
cookie 是将服务器端的数据保存到浏览器端的技术,当用户再次请求服务器时,将浏览器端存储的数据带到服务器。
二、Cookie的创建及读取
创建Cookie
package com.jingxin.servlet;import java.io.IOException;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;@WebServlet("/SetCookieServlet")public class SetCookieServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建Cookie Cookie cookie = new Cookie("name", "jingxin"); //通知服务器保存Cookie response.addCookie(cookie); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
服务器获取浏览器发送过来的Cookie
package com.jingxin.servlet;import java.io.IOException;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;@WebServlet("/GetCookieServlet")public class GetCookieServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取浏览器发送过来的Cookie Cookie[] cookies = request.getCookies(); //判断是否有Cookie if(cookies!=null) { //遍历Cookie for(Cookie cookie : cookies) { String name = cookie.getName(); String value = cookie.getValue(); //do something with name and value response.getWriter().append("cookie:"+name+" "+value); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
三、Cookie的持久化
1、设置Cookie的有效时间(会将Cookie保存在硬盘)
cookie.setMaxAge(int expiry);
expir 为cookie的有效时间 单位为秒,若为负数表示浏览器不保存Cookie,若为0表示删除同名Cookie
若未设置cookie的有效时间,cookie只保存在内存中,浏览器关闭时cookie也会随之删除
四、Cookie 的路径问题
客户端在保存Cookie时除了保存Cookie的名字和值,还会保存当前Cookie所在的目录,通过request。getCookies()方法只能获得当前Servlet所在目录的Cookie以及之前目录中的Cookie。
举例:假设当前Servlet所在目录为/demo1/a/b/AServlet 则利用request.getCookies()可以获得demo1、a、b目录下的Cookie
可以利用cookie.setPaht()和cookie.getPath()来设置和获取cookie的访问路劲。
阅读全文
0 0
- Cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- Cookie
- Cookie
- Cookie
- cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- cookie
- 结构光:投影仪的标定(OpenCV)
- The TensorFlow library wasn'tcompiled to use SSE4.1 instructions, but these are available on your ma
- MXNet手写体识别
- 用 1,2,2,3,4,5 六个数字,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- java set 转为 map
- Cookie
- 【设计模式】(7)--最常用模式之外观模式
- 安装Scrapy(Python2.7)
- VS code 实用技巧
- JAVA解析Excel需要的包及代码
- VScode 的使用
- JavaShowAlgorithm-找出数组中相同的元素
- vuex网上记事本的仿写
- linux定时执行任务