tomcat的配置和对session的影响的问题

legendox 2009-10-09 06:12:11
遇到一个很奇怪的问题(本人初学者,请大虾们指导)
1、最开始发现session失效了:我在index.jsp中设置了session值,
session.setAttribute("user","test");

然后再后面的login_confirm。.jsp页面中可以取得user的值为test。但是从login_confirm.jsp跳转到另一个文件夹下的下一个页面main\main.jsp时所取得的user的值为空,并且由session.getId()得到session的id的值也发生了变化。
2、上面的第一个页面我是这么进入的:index.jsp是在我在tomcat中设置的一个虚拟主机的根目录下,所以直接在地址栏中输入虚拟主机的名称(www.reuse.con)打开的index.jsp。就出现了上面的问题。
随后我做了一个测试,在虚拟主机www.reuse.com的根目录下面新建了一个目录ex,然后把上面三个页面index.jsp,login_confirm.jsp和main\main.jsp复制到了虚拟目录所对应的真实目录下面,在地址栏中输入:www.***.com/ex/index.jsp 打开index.jsp后,进行1中的操作,就没有出现session为空的问题,就算是跳转到第四个页面(测试的第四个页面包含frameset和iframe)也没的问题。
tomcat中conf/server.xml中的配置如下:

<Host
appBase="E:\workspace\JSP\reuse"
name="www.reuse.com">
<Context
docBase="."
path="/"
debug="0"
reloadable="true">
</Context>
<Context
docBase="E:\workspace\JSP\ex"
path="/ex"
debug="0"
reloadable="true">
</Context>
</Host>

index.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,java.io.*,java.lang.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<%
session.setAttribute("user","test");
%>
<%
String sstr = (String)session.getAttribute("user");
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
sstr = (String)session.getId();
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
%>
<a href="login_confirm.jsp">进入login_confirm.jsp</a>
</html>

login_confirm.jsp

<%@ page language="java" import="java.util.*" import="java.io.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<%
String sstr = (String)session.getAttribute("user");
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
sstr = (String)session.getId();
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
%>
<a href="main.jsp">进入main.jsp</a>
</body>
</html>

main.jsp

<%@ page language="java" import="java.util.*" import="java.io.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<%
String sstr = (String)session.getAttribute("user");
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
sstr = (String)session.getId();
out.print("<script type=\"text/javascript\">");
out.print("alert(\'"+sstr+"\')");
out.print("</script>");
%>
<a href="main/main.jsp">进入main.jsp</a>
</body>
</html>
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
legendox 2009-10-13
  • 打赏
  • 举报
回复
没人回答啊?再顶
legendox 2009-10-11
  • 打赏
  • 举报
回复
up
legendox 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ileson 的回复:]
只是觉得这样作不是很合理。
业务逻辑尽量不要出现在jsp页面里。
[/Quote]
我这只是个测试的代码,实际的代码不是这样的
legendox 2009-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zl3450341 的回复:]
Java code<session-config><session-timeout>60</session-timeout></session-config>

web.xml里面配置session失效时间
[/Quote]

恩,那个里面本来就是那个设置的嘛
Leson_Yin 2009-10-10
  • 打赏
  • 举报
回复
只是觉得这样作不是很合理。
业务逻辑尽量不要出现在jsp页面里。
zl3450341 2009-10-10
  • 打赏
  • 举报
回复

<session-config>
<session-timeout>60</session-timeout>
</session-config>


web.xml里面配置session失效时间

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧