Cookie重名问题处理

常用 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值