网站计数器—JSP中的JAVA程序片

在JSP中,在"<% %>"之间书写的程序代码称为Java程序片,并且可以在其中插入HTML语句。

一个JSP页面中可以有多个Java程序片。

但是,在Java程序片中声明的变量在它们所在的JSP页面的所用程序片及表达式中都有效。

在程序片中声明的变量只在页面有效,是局部变量,它在不同的客户访问同一个页面的时,此变量是不能共享的。

但如果是在"<%! %>"之间声明的变量就可以在不同的客户之间共享,其有效范围是整个web应用,在服务器关闭时变量才会被释放.

"<%= %>"可以直接输出变量或表达式的值,变量或表达式的值将作为一个字符串在浏览器中输出。

下面是一个简单的计数器,用于统计当前已访问网站的人数:

<%! int counter=0;
        void counterFun(){
            counter++;
        }
     %>
    <%counterFun(); %>
    网站计数器<br>
    你是第<%=counter %>位访问者

反复刷新网页,可以看见counter在不断增加,即使同时打开多个页面counter依旧在依次整体增加

但是,我们将服务器关闭之后再打开,counter又回到了1

可见,计数器变量将在客户间共享,直至服务器关闭!

 

如果我们想要在服务器关闭之后依然保存当前访问次数,并且在下次启动时在此基础上增加

我们可以在服务器端新建一个文本用于保存当前访问次数,每次访问网页时都读取这个文本然后次数加一显示并保存。

        //读取
    FileInputStream in=new FileInputStream("count.txt");
    DataInputStream dataIn=new DataInputStream(in);
    number=dataIn.readInt();
        //显示当前已访问次数 
    number++;
    in.close();
    dataIn.close();

        //写入
    FileOutputStream out=new FileOutputStream("count.txt");
    DataOutputStream dataOut=new DataOutputStream(out);
    dataOut.writeInt(number);
    out.close();
    dataOut.close();        

但我感觉应该有更直接的方法。

 

posted @ 2017-04-09 12:39  柠檬水请加冰  阅读(1240)  评论(0编辑  收藏  举报