1、书名:《Java Web 开发详解》 作者:孙鑫
2、书名:《Java 核心技术 卷Ⅰ、Ⅱ》 作者:Cay S.Horstmann Gary Cornell(美)因为网络连接是无状态,基于请求与响应的,所以就需要会话来保存客户端状态,当服务器响应客户的第一次请求时,服务器将创建一个Session对象(该对象实现了HttpSession接口)和一个唯一的会话ID分配给该请求,以后客户将此会话ID与请求一起传给服务器,用于识别不同的客户

解决方案 »

  1.   

    例子:
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;public class SessionCheck extends HttpServlet{
         private static final String CONTENT_TYPE = "text/html; charset=GBK";     public void init() throws ServletException{}     public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
         response.setContentType(CONTENT_TYPE);
         HttpSession session = request.getSession(false);
         if(session == null)
         {response.sendRedirect("/sessiontrack/login.html")}
         else{response.sendRedirect("/sessiontrack/welcome.html")}    
         }
         public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
          doGet(request,response);
          }     public void destroy(){}
    }
      

  2.   

    《J2EE开发全程实录 》中的WebSession一节对此问题做了比较好的解释,推荐阅读,这里有在线阅读版:
    http://book.csdn.net/bookfiles/427/
      

  3.   

    你的代码好像并没有为session赋值,它应该一直是null吧