常用 API --- Cookie重名问题

1)、Cookie 重名时,可能执行覆盖操作

2)、什么情况下不覆盖?

A、站点不同时

B、setPath("路径");//路径不同时,Cookie 可以重名

步骤详解:

创建一个servlet命名为PathDemo用来缓存cookie

在类中给所有cookie变量设置路径,如果单一设置会将所有的路径都打印出来

在servlet中运行,http://localhost:8080/PathDemo,将路径存进cookie

此时请求头里不会有数据,因为每个变量都加了路径,地址栏里没有设置路径

创建servlet测试类打印信息

http://localhost:8080/BBB/TWoServlet此时控制台会打印出指定路径的值,路径和配置文件路径URL一致

打印出来222

详细代码:

public class PathDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie c1 = new Cookie("A","111");
//设置 PATH
Cookie c2 = new Cookie("B","222");
Cookie c3 = new Cookie("B","333");
c1.setPath("/AAA");
c2.setPath("/BBB");
c3.setPath("/CCC");
response.addCookie(c1);
response.addCookie(c2);
response.addCookie(c3);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}

public class TWoServlet extends HttpServlet
public void doGet(HttpServletRequest req,HttpServletResponse res){
Cookie[] cookies = req.getCookies();
if(cookies!=null && cookies.length>0){
for (Cookie cookie : cookies) {
System.out.println(cookie.getName()+"  "+cookie.getValue());
}
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
doGet(req, res);
}
}

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>day34Demo01_Cookie</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>PathDemo</display-name>
    <servlet-name>PathDemo</servlet-name>
    <servlet-class>cn.itcast.web.servlet.PathDemo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>PathDemo</servlet-name>
    <url-pattern>/PathDemo</url-pattern>
  </servlet-mapping> 
  <servlet>
    <description></description>
    <servlet-name>TWoServlet</servlet-name>
    <servlet-class>cn.itcast.web.servlet.TWoServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TWoServlet</servlet-name>
    <url-pattern>/BBB/TWoServlet</url-pattern>
  </servlet-mapping>
</web-app>

Cookie重名问题处理相关推荐

  1. 不同模块下包重名怎么解决_模块

    模块 1. 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 2. 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导 ...

  2. android id 重名_Android App 自定义权限重名不能安装解决办法

    场景1. A 应用 有两个版本 第一个 正式版 第二个测试版    测试版的包名 = 正式版+test ,在Android studio 中 也就是 applicationId  . 两个版本都可以成 ...

  3. Ajax实现简单用户名重名查询

    很早就想发布这篇POST了,Ajax实现简单用户名重名查询,引用了xmlhttprequest object pool,如下: XMLHttpRequest Object Pool /**  * XM ...

  4. java实现动态上传多个文件并解决文件重名问题

    java实现动态上传多个文件并解决文件重名问题 参考文章: (1)java实现动态上传多个文件并解决文件重名问题 (2)https://www.cnblogs.com/skycodefamily/p/ ...

  5. 【更新】北京、广东、吉林重名数量查询工具,给孩子起名重名查询

    最近很多朋友需要重名查询的功能,我今天测试了一下,北京和广东的查询工具好像都有点问题(不知道是不是和最近的那啥有关).那两个链接都是政府的网站(域名有gov),大家也能看出来,不知道因为什么原因不能使 ...

  6. 北京、广东重名数量查询工具,给孩子起名重名查询

    只找到了北京和广东的重名数量查询,哪位朋友有其他省市的重名数量查询链接可以在后台发给我,感谢. 两个网站都是gov的政府网站,应该是从公安的数据库查询的重名数量. 北京查询截图: 广州查询截图: 两个 ...

  7. 从JavaScript函数重名看其初始化方式

    今天有个哥们问我要是JavaScript函数重名了会有什么后果?开始我没有细想,就说可能会出错吧,可是等我实验完了发现页面没有任何脚本错误提示,而且程序也运行了,只是对同名函数的调用执行了位置靠后的一 ...

  8. linux 下重名名文件

    linux 下重名名文件 最经在使用linux的时候,用到重名的功能,在网上找了一下,找到一下方法: 使用mv命令重名名: 原理:使用 mv 移动文件的功能,见当前文件以要修改的名字移动到当前文件夹, ...

  9. AJAX——注册新用户的重名提示

    基本概念 AJAX:AJAX引擎其实是一个JavaScript对象,全写是 window.XMLHttpRequest对象,由于浏览器的版本不同,特别是老版本的IE浏览器,虽然也支持AJAX引擎,但是 ...

最新文章

  1. linux中的rm 删除命令
  2. 苏宁易购Android架构演进史
  3. matplotlib输出图形到网页_必学python库Matplotlib教程分享
  4. 按群计数10以内_大班数学活动:按群计数
  5. C#[抽象类,接口]
  6. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统【转】
  7. as5300g2 nas软件功能_【浪潮混闪存储AS5300G5-可同时提供SAN和NAS两种服务的中端混闪存储系统】价格_厂家 - 中国供应商...
  8. (转)程序员的十层楼11层(上帝)
  9. Linux网络编程常见面试题
  10. stl max函数_std :: max_element()函数以及C ++ STL中的示例
  11. 服务器多路径 映射分区找不到,设备映射多路径DM-Multipath
  12. using namespace std
  13. Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets .
  14. 【5分钟 Paper】Continuous Control With Deep Reinforcement Learning
  15. 【wikioi】1014 装箱问题
  16. DirectX 初始化DirectX(手写和红龙书里面的方式)
  17. Linux下卸载anaconda3
  18. 用于Firefox的Google工具栏Beta 2发布
  19. 什么是阿尔法和贝塔?
  20. 4.React Native项目开发如何配置调试

热门文章

  1. 3.《The Shawshank Redemption》
  2. tensorflow 1.10下Mask RCNN实现自己数据集
  3. UG/NX二次开发 选择坐标系控件 uc1630
  4. 你好法语A1语法单元汇总(unité 7)
  5. grafana+alertmanager 微信报警发送给不同告警人
  6. application实现一个简单的网页计数器
  7. Python3快速入门教程-zyiz.net
  8. InvalidOptions: Requested option conflicts with current storage engine option for directoryPerDB
  9. androidP Surface到SurfaceFlinger -->surface -> BufferQueue(一)
  10. (2012.12.25)我的中级软件设计师考试