當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSP简单练习-网站计数器
生活随笔
收集整理的這篇文章主要介紹了
JSP简单练习-网站计数器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="javax.servlet.*" %>
<html>
<head>
<title>網站計數器</title>
</head>
<body><%!synchronized void countPeople(){ // 串行化計數函數ServletContext application=((HttpServlet)(this)).getServletContext();Integer number=(Integer)application.getAttribute("Count");if(number==null){ // 如果是第1個訪問本站number=new Integer(1);application.setAttribute("Count", number);}else{number=new Integer(number.intValue()+1);application.setAttribute("Count",number);}}%><%if(session.isNew()){ // 如果是一個新的會話out.println("是一個新會話!");countPeople();}Integer yourNumber=(Integer)application.getAttribute("Count");out.println(yourNumber);%><p>歡迎訪問本站,你是第<%=yourNumber %>個訪問用戶。
</body>
</html>
程序利用synchronize關鍵字對計數函數進行了串行化(有的書中叫序列化),以確保當兩個客戶端同時訪問網頁而修改計數值時不會產生沖突;getServletContext()方法來得到application對象,因為有些Web服務器并不直接支持application對象,必須先得到其上下文;如果還是第一個訪問的客戶,則前面代碼中得到的number會是空值,故置初始值為1,否則做增1處理;如果是一個新的會話則調用計數函數,得到計數值并將其顯示。
可以發現,當刷新頁面時,其數值并不會增加,只有關閉了本網站的所有窗口再重新訪問時,才會增1,因為這又是一個新的會話。
總結
以上是生活随笔為你收集整理的JSP简单练习-网站计数器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 找CTO杜仲:技术人别把股权(期权)弄成
- 下一篇: 徐昊:运用四色建模法进行领域分析