Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 为什么tomcat为每个请求创建会话cookie?_Jsp_Session_Tomcat_Cookies - Fatal编程技术网

Jsp 为什么tomcat为每个请求创建会话cookie?

Jsp 为什么tomcat为每个请求创建会话cookie?,jsp,session,tomcat,cookies,Jsp,Session,Tomcat,Cookies,我正在Tomcat上使用JSP/servlets开发一个简单的web应用程序。 我有一个index.jsp页面,显示UI并加载JS代码,重复“轮询”AJAX请求——这很简单 问题在于,每个ajax请求都返回一个新的jsessionid,因此我试图存储在会话对象中的数据每次都会丢失 这个问题不会发生在我直接调用tomcat的开发机器上,它只发生在请求通过Apache的登台/实时环境中(在我的开发机器上,我调用localhost…/path/index.jsp和localhost…/path/aja

我正在Tomcat上使用JSP/servlets开发一个简单的web应用程序。 我有一个index.jsp页面,显示UI并加载JS代码,重复“轮询”AJAX请求——这很简单

问题在于,每个ajax请求都返回一个新的jsessionid,因此我试图存储在会话对象中的数据每次都会丢失

这个问题不会发生在我直接调用tomcat的开发机器上,它只发生在请求通过Apache的登台/实时环境中(在我的开发机器上,我调用localhost…/path/index.jsp和localhost…/path/ajax.jsp-在live env中,apache将domain.com路由到domain.com/path/index.jsp,并将domain.com/ajax.jsp路由到domain.com/path/ajax.jsp)

我验证了我没有在任何地方配置useHttpOnly参数或useCookies。顺便说一句,我们使用的是tomcat 6

这可能是ApacheTomcat交互问题吗


感谢您的帮助!

这可能是Cookie路径的问题。可能会话Cookie与domain.com/path绑定。但从浏览器的角度来看,路径是domain.com/

将cookie路径设置为/也会使浏览器向domain.com/发送cookie

你能检查Firebug/Fiddler中的cookies并将内容发布在这里吗

不幸的是,Servlet API是 在创建会话方面相当自由。 各种工具都有默认行为 它可以隐式创建会话 在后台。这对你来说很容易 “意外”的应用程序 创建一个会话,即使在 没有明确要求

例如,JSP通常会创建 一个会话,如果还没有 这允许JSP使用 隐式会话变量。作为第二个 例如,request.getSession() 方法也将自动创建 一个会话,如果还没有 存在

我认为问题的原因已经在上面解释过了

请尝试index.jsp顶部的
。如果这样做了,请找到另一种存储值的方法(在请求范围内)