解决方案 »

  1.   

    session.isNew这个方法没有用过,不知道这个方法是不是这个意思。不过你可以采用另一个种解决方式啊。首次访问的时候计算器加1,并且往session中写入一个值,然后每次就判断session中是否存在这个值,如果存在这个值,则不加,不存在则认为是首次访问。
      

  2.   

    那就换桌面型浏览器,不要用 eclipse 自带的嵌入式的浏览器,那个嵌入式的浏览器组件是10年前的技术,早过时了。基本上如果一个请求带上了 jsessionid 这个 cookie 它就是要对应到已经存在的一个 session,如果没有这个 cookie 则相当于没有 session,在服务器上就是每次创建一个背后的。你可以通过 eclipse 的 TCP/IP Monitor 视图来观察你的 HTTP 通信,比如添加一个配置:
    listen at: 8888, forward 到原来的服务器的监听端口,比如: localhost:8080 
    你然后在浏览器中用 :8888 这个端口来访问你原来的网页,之后你的通信过程可以在 TCP/IP Monitor 中观察到,你可以确认它是否带上了 jsessionid 这个 cookie。
      

  3.   

    感谢大侠认真的解答,我刚接触JSP,Eclipse用的也不熟,不知道怎么用TCP/IP Monitor视图监听。我把JSP文件拷贝到tomcat的根目录下用桌面浏览器打开,这次刷新倒是不+1了,可是关闭再打开后还是显示“您是第1位访问者”不知道该怎么搞了,不知道大侠能不能帮帮我,能配些图最好,我这人脑子慢,还请多担待
      

  4.   

    (可选的:你可以下载一份 java 反编译工具。它可以让你看正在运行的代码的样子)
    http://tomcat.apache.org/tomcat-6.0-doc/jasper-howto.html这里说如果让 tomcat 在编译 jsp 时保留一份由 JSP 编译生成的 Servlet 源码不要删除,你可以在 tomcat 的 work / tmp 之类的目录下去找 java 源码文件,应该有你自己的那个份,你可以看到 <%!  中的代码最后是什么样的 %>。那你个把计数器放在 session 中的做法是有问题的,因为浏览器关闭时 session 就消失了,重新打开就是新的 session,又从1开始计算,期望的办法是把数值放在 application 里面。  application.setAttribute("counter", number);再说了,你已经有个 servlet 变量 number ,为什么还用 session 来存储它呢?直接用 number 不好么?
    一般来说第几位访客正式的版本应该保存在持久性的存储中,比如文件中或数据库,这样服务器重启后也能接着计数。