Can';t提取Javaservlet中的所有cookie
在我当前正在开发的应用程序中,我需要从应用程序服务器创建的用户浏览器中删除所有cookie。 问题是,有了Chrome和Opera,我可以得到所有的cookie,这很好,但使用Firefox和IE只能得到其中的一部分。 当我检查我需要的cookie是否在浏览器历史记录中装箱时,我看到它们在我的Javaservlet中,但无法得到 我的工作如下:Can';t提取Javaservlet中的所有cookie,java,servlets,cookies,Java,Servlets,Cookies,在我当前正在开发的应用程序中,我需要从应用程序服务器创建的用户浏览器中删除所有cookie。 问题是,有了Chrome和Opera,我可以得到所有的cookie,这很好,但使用Firefox和IE只能得到其中的一部分。 当我检查我需要的cookie是否在浏览器历史记录中装箱时,我看到它们在我的Javaservlet中,但无法得到 我的工作如下: public static Cookie getCookieByName(String cookieName, HttpServletRequest r
public static Cookie getCookieByName(String cookieName, HttpServletRequest request) {
Cookie cookie = null;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
Cookie c = cookies[i];
if (c.getName().compareTo(cookieName) == 0) {
cookie = c;
break;
}
}
}
return cookie;
}
公共静态Cookie getCookieByName(字符串cookieName,HttpServletRequest){
Cookie=null;
Cookie[]cookies=request.getCookies();
如果(cookies!=null){
for(int i=0;i
对于Firefox和Opera,返回的cookie是JSESSIONID、\uu\utma。。。但是有丢失的饼干。。我需要的那些。。
知道如何继续吗?使用Firebug检查这些cookie是否真的由Firefox发送到服务器,以及它们的名称是否与您正在搜索的名称匹配。还要添加一些调试跟踪并打印所有cookie的名称
也许你在cookie中设置了一些路径,Firefox比IE更严格。浏览器将发送它认为适合发送的cookie,你将无法说服它再发送 您需要做的是检查未发送的cookie的详细信息,找出它们与正在发送的cookie的区别。要看的东西包括:
- cookie的域
- 饼干的路径
- 饼干的端口
- cookie的“安全”标志
可能有助于解决此问题。为什么要使用Cookie?为什么不在表单中使用隐藏输入,并在服务器和浏览器之间来回传递变量呢?谢谢你的帮助;在我的例子中,Chrome可以读取/使用cookie,但不能读取/使用FF或IE。事实证明,cookie的“路径”不准确,但在我在服务器端创建cookie时设置了
cookie.setPath(contextPath)
之后,它开始在所有浏览器上工作