啥都不说,直接贴代码
这是我的一个jsp<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@page import="com.ccniit.bookshop.data.domin.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getLocalPort()+"/"+path+"/";
Users user = (Users)session.getAttribute("modifyUser");
%>这里取得的不是空值
然后这个页面跳转到一个servlet上去with(document.forms[0]){
method = "post";
action = "servlet/users/ImageUpLoad";
submit();
}在这个servlet上HttpSession httpSession = req.getSession();
System.out.println(httpSession.getAttribute("modifyUser") == null);打出来的竟然是true
求大神指教

解决方案 »

  1.   

    是怎么放到session中的,
    还有Users user = (Users)session.getAttribute("modifyUser")这里拿到的数据时正确的么
      

  2.   

    没有错的,是不是你的session在跳转之前就失效了?也就是说在跳转前session销毁了或者是超时自动销毁了?
      

  3.   

    很可能session超时丢失,在web.xml中设置session时效
    <session-config>     <session-timeout>15</session-timeout> </session-config>
    这里15 就是15分钟
      

  4.   

    仔细看看代码是不是哪里重新set了modifyUser;或者哪里已经清了session中的modifyUser
      

  5.   

    我上面说了的,我从session里面拿出来的不是空值,跳转了之后拿出来才是空值
      

  6.   

    你这个事务提交了,session失效了吧。。
      

  7.   

    session不是只要浏览器窗口没关闭都是存在的吗
      

  8.   

    比较一下前后sessionid是同一个吗?
      

  9.   

    session.getAttribute("modifyUser") 这地方获取的是一个字符串类型,字符串类型判断方法是xx.equals()方法,的等于用==来判断  这纠结了
      

  10.   

    HttpSession httpSession = req.getSession(); 问题应该出在这句上吧,这个不是无条件创建session吗?修改成:HttpSession httpSession = req.getSession(false);试试出错有可能因为你这个session已经不是传过来的session了
      

  11.   


    你能不能仔细去看看API再来回答 还返回字符串类型诶
      

  12.   

    是不是你的session在跳转之前就失效了?也就是说在跳转前session销毁了或者是超时自动销毁了?
      

  13.   

    你应该在jsp页面中在set一次session到request中的,然后在在servlet中在找找。应该来说,你给request的attribute中放入一个session,在整个会话过程中都是有效的。
      

  14.   

    先看看有没有设置值,再看看session有没有过期