这是我的关键代码 public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
HttpSession session=request.getSession(true);

String name=request.getParameter("userName");  //获取用户姓名
String pwd=request.getParameter("password");   //获取用户密码

User user=new User();   //User 是存放用户的属性
DataManagement dm=new DataManagement();
int result=0;
result=dm.IsExistOrNot(name);   //检验是否存在这样一个名字
if(result>0)
{
user=dm.getUser(name, pwd);
session.setAttribute("USER", user);    //把用户信息存放到session中

response.sendRedirect("JspFiles/chat.jsp");   //跳转到别的页面

}
else
{
response.sendRedirect("JspFiles/login.html");//跳转到别的页面
}
}
接着是运行下面的代码public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=gb2312");
HttpSession session=request.getSession(true);
User user=(User)session.getAttribute("USER");   //获取“USER”的信息,这里没有出现问题
String message=request.getParameter("message");
Records records=new Records();

records.setContent(message);
records.setUid(user.getUid());
records.setName(user.getName());

DataManagement dm=new DataManagement();
dm.insertRecods(records);

if(user.getChatId()==0)
user.setChatId(dm.getChatId());

String Message="聊天信息:\n\n";
List listNews=dm.getNews(user.getChatId());
for(int i=listNews.size()-1;i>=0;i--)
{

Records red=new Records();
red=(Records)listNews.get(i);

Message+=red.getName()+"("+red.getTime()+")\n"+red.getContent()+"\n\n";

}

PrintWriter out = response.getWriter();
out.print(Message);

}
到这里,从session的“USER”没有出现问题,
但运行到下面的代码时就出现问题啦,“USER”变成了nullpublic void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=GB2312");

HttpSession session=request.getSession(false);
User user=(User)session.getAttribute("USER");//为什么???从这里获得的“USER”是null的

DataManagement dm=new DataManagement();
if(user==null)
System.out.println("fail");
List listNews=dm.getNews(24);

String Message="聊天信息:\n\n";
for(int i=listNews.size()-1;i>=0;i--)
{

Records red=new Records();
red=(Records)listNews.get(i);

Message+=red.getName()+"("+red.getTime()+")\n"+red.getContent()+"\n\n";

}

PrintWriter out = response.getWriter();
out.print(Message);

}
那位大哥大姐可以帮一下我,

解决方案 »

  1.   

    我中间没有把session中的“USER”给删掉,是我还没有掌握session吗??还是补充一点的是第三段的代码是重复调用的
      

  2.   

    很久没上了,我觉的很可能是你的session 问题,你用response.sendRedirect(‘’);跳转的话到另一个页面并不是同一个session .要用request.后面不太记得了。自己查以下把?
      

  3.   

    只要浏览器没有被关闭,不管怎么链接都是一个session,看一下session是否失效了。
      

  4.   

    HttpSession session=request.getSession(false);
    如果能够获取session 不可能获取不到该属性 个人感觉是session没获取到
    试着 判断一下session是否空