yc451075935 2014-10-24 09:23 采纳率: 0%
浏览 3857

为什么session.isNew()刷新页面后总会返回TRUE

小白最近刚接触JSP,在用session对象写一个防刷新计数器时遇到了问题。理想情况下是刷新页面时计数器不+1,仅当关闭浏览器再重新打开时才会+1;可是在Eclipse JavaEE的内部浏览器测试时刷新网页计数器也会+1,不知道出了什么问题,下面贴出代码,恳请各位前辈指教

<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <%!
        int number=0;
        synchronized void countpeople(){
        number++;
    }
    %>
    <%
        if (session.isNew()){
            countpeople();
            String num=String.valueOf(number);
            session.setAttribute("counter", num);
        }
    %>
    您是第<%=session.getAttribute("counter")%>位访问者!
</body>
</html>
  • 写回答

2条回答

  • Mr阿龙 2015-11-22 03:46
    关注

    你不应该用session,你要用application;
    代码
    <%
    Integer yourNumber = new Integer(0);
    %>
    if(session.isNew()){
    Integer number = (Integer)application.getAttribute("Count");
    if(number == null){
    number = new Integer(1);
    }
    else{
    number = new Integer(number.intValue()+1);
    }
    application.setAttribute("Count",number);
    yourNumber = (Integer)application.getAttribute("Count");

    }

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名