首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实施会话跟踪时的NullPointerException

实施会话跟踪时的NullPointerException
EN

Stack Overflow用户
提问于 2013-06-30 04:33:03
回答 1查看 2.2K关注 0票数 1

嗨,我正在用HttpServlets练习会话跟踪。我在这段代码中(在else块中)得到了一个错误的空指针异常。有谁能帮帮我吗?谢谢

代码语言:javascript
复制
@WebServlet(name = "SessionTracking", urlPatterns = {"/SessionTracking"})

public class SessionTracking extends HttpServlet {

/**
 * Processes requests for both HTTP
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    HttpSession session = request.getSession(true);
    Integer counter = (Integer)session.getAttribute("sessionCounter");

    if (session.isNew())
    {
        counter = new Integer(1);
        session.setMaxInactiveInterval(10);
    }
    else 
    {
       counter = new Integer(counter.intValue() + 1);//nullPointerException Here
    }

    session.setAttribute("sessionCounter", counter);
    try {
        /* TODO output your page here. You may use following sample code. */
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet SessionTracking</title>");            
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Session Tracking: </h1>");
        out.println("<p>You have visited this page <b>" + counter + "</b> times</p>");
        out.println("<h3>Session Data: </h3>");
        out.println("New Session: " + session.isNew() + "<br/>");
        out.println("Session ID: " + session.getId());
        out.println("</body>");
        out.println("</html>");
    } 
    finally
    {            
        out.close();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-30 04:35:13

根据session.isNew()的说法,即使会话不是新的,session.getAttribute("sessionCounter")似乎也会返回null。尝试用counter == null替换session.isNew(),看看它是否正常工作。效果应该是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17384430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档