我是servlet的新手,今天有第一堂课。

现在,我正在尝试创建一个计算用户访问量的servlet。

关于如何递增计数器总是会出错:

    HttpSession session = req.getSession(true);
Integer visitCount = new Integer(0);
String visitCountKey = new String("visitCount");
synchronized (this) {
    if (!session.isNew()) {
        visitCount = (Integer) session.getAttribute(visitCountKey);
        visitCount = new Integer(visitCount.intValue() + 1); //error
    }
    session.setAttribute(visitCountKey, visitCount);
}


我正在创建一个新的整数,因为我在stackoverflow上看到整数是不可变的。仍然不起作用,并且在那条线上给了我一个错误。

有人能帮我吗?

亲切的问候,

最佳答案

您应该添加null检查visitCount

HttpSession session = req.getSession(true);
String visitCountKey = new String("visitCount");
synchronized (this) {

    Integer visitCount = (Integer) session.getAttribute(visitCountKey);
    if(visitCount == null) {
        visitCount = 0;
    }
    visitCount = new Integer(visitCount.intValue() + 1);
    session.setAttribute(visitCountKey, visitCount);
}

08-05 03:30