为什么每刷新一次就建一个新的session?
测试页代码如下:<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=gb23...
测试页代码如下:
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<html>
<body>
<center>
<%=session.getId()%>
</center>
</body>
</html>
我一开始以为是因为没有数据写入session的原因,后来我按书上写了个简单的登陆界面,把登陆名定入session中,跳到另一个页面也读不到写入session的数据。发现sessionId是新的,cookie是null值。在网上寻找了很久也没找到可以解决的方法。
本人用的是IE8,把IE里的"替代cookie自动处理勾上,也勾上“总是允许会话 cookie”还是不行,请问有人知道是什么原因吗?
我试了保存数据入session的,最后得到的是NULL值,代码如下:
第一个网页,提交信息,就是通过<input...提交,没什么特别的,代码不贴了。
第二个网页,接收第一个网页填的登陆名,并写入session中:
第二个网页的代码:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<html>
<head><title>登陆验证</title></head>
<body>
<%String name=request.getParameter("user");
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
session.setAttribute("name",name);
%>你的名字<%=(String)session.getAttribute("name")%>已经写入session了.(这里能正常读出name)
<a href="checksession.jsp">验证登陆</a>
</body>
</html>
第三个网页(checksession.jsp),就是用<%=(String)session.getAttribute("name")%>取出登陆名,结果却为null,问题就出现在这里,在第二个页面存进session的name取不出来了,不知与TOMCAT有没关?
使用session前加一句:session.setMaxInactiveInterval(30*60);也是返回null值。
非常感谢大家解答,我把tomcat7.0删了,装了个6.0的没问题了my god! 展开
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<html>
<body>
<center>
<%=session.getId()%>
</center>
</body>
</html>
我一开始以为是因为没有数据写入session的原因,后来我按书上写了个简单的登陆界面,把登陆名定入session中,跳到另一个页面也读不到写入session的数据。发现sessionId是新的,cookie是null值。在网上寻找了很久也没找到可以解决的方法。
本人用的是IE8,把IE里的"替代cookie自动处理勾上,也勾上“总是允许会话 cookie”还是不行,请问有人知道是什么原因吗?
我试了保存数据入session的,最后得到的是NULL值,代码如下:
第一个网页,提交信息,就是通过<input...提交,没什么特别的,代码不贴了。
第二个网页,接收第一个网页填的登陆名,并写入session中:
第二个网页的代码:
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<html>
<head><title>登陆验证</title></head>
<body>
<%String name=request.getParameter("user");
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
session.setAttribute("name",name);
%>你的名字<%=(String)session.getAttribute("name")%>已经写入session了.(这里能正常读出name)
<a href="checksession.jsp">验证登陆</a>
</body>
</html>
第三个网页(checksession.jsp),就是用<%=(String)session.getAttribute("name")%>取出登陆名,结果却为null,问题就出现在这里,在第二个页面存进session的name取不出来了,不知与TOMCAT有没关?
使用session前加一句:session.setMaxInactiveInterval(30*60);也是返回null值。
非常感谢大家解答,我把tomcat7.0删了,装了个6.0的没问题了my god! 展开
5个回答
展开全部
网络或浏览器的问题。
在浏览器通过http协议提交时,会在消息头里面包含一个唯一性ID号,服务器端根据ID号,会自动识别并查询是否有对应的关联号,有则自动关联到对应的session,如果没有则创建新session。
在浏览器通过http协议提交时,会在消息头里面包含一个唯一性ID号,服务器端根据ID号,会自动识别并查询是否有对应的关联号,有则自动关联到对应的session,如果没有则创建新session。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看你 checksession.jsp这个页面时如何跳转过去的,是不是新开的一个页面还是通过连接或者提交跳转过去的。如果是新开的也没当然不属于同一个session了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的登录流程没看出有什么问题,会不会是Tomcat的失效时间问题?尝试在第2个页面中使用session前加一句:session.setMaxInactiveInterval(30*60);试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
刷新相当于一次请求吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询