遇到一个很奇怪的问题(本人初学者,请大虾们指导)
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>