我的a.jsp页面有一个登陆框,这个登陆框是放在login.jsp中的
在login.jsp中判断用户是否已经登陆,如果未登录则显示登陆框,如果已登录则消失用户个人信息我在a.jsp中用<jsp:include page="login.jsp" flush="true" />把login.jsp包含进来因为在login.jsp中用到session,而a.jsp中不会用到session,因此我在a.jsp中用<%@ page session="false"%>
把session关掉了,在未关闭前页面登录退出一直正常,我再a.jsp中加了session=false后就出现异常了异常情况:退出登录后在显示登录框的地方什么东西也没有了,就是说login.jsp页面的内容看不到。我调查了下,a中用动态包含编译后变成
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "login.jsp", out, true);
关键是这个参数request,这个参数因关闭了session,所以传到login.jsp中无法正常获得session但是当我把login.jsp的session也关闭而改用自己创建 HttpSession session=request.getSession(true)
此时如果没有session则会创建啊,怎么还是出现一样的错误,何解???

解决方案 »

  1.   

    在页面中设置session=false是禁用session吧禁用以后再创建应该不起作用!
      

  2.   

    HttpSession session=request.getSession(true)
    禁用后可以再用上面的创建
      

  3.   

     session="true|false";   //当前页面是否启用session,为false时,当然页面不会生成session,其它页面使用时会出现异常。。                                                                                                                                                   
      

  4.   

    jsp 编译从上上到下的,你在a.jsp页面的头上定义session="false",当编译到login.jsp中出现session对象,编译出错