国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Servlet實現(xiàn)點擊計數(shù)器的方法

Servlet實現(xiàn)點擊計數(shù)器的方法

2020-12-21 10:59EasonJim Java教程

這篇文章主要介紹了Servlet實現(xiàn)點擊計數(shù)器的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、Web頁面的點擊計數(shù)器

很多時候,可能有興趣知道網站的某個特定頁面上的總點擊量。使用Servlet來計算這些點擊量是非常簡單的,因為一個Servlet的生命周期是由它運行的容器控制的。

以下是基于Servlet生命周期實現(xiàn)一個簡單的頁面點擊計數(shù)器需要的步驟:

  • 在init()方法中初始化一個全局變量。
  • 每次調用doGet()或doPost()方法時,增加全局變量。
  • 如果需要,可以使用一個數(shù)據(jù)庫表來存儲destroy()方法中的全局變量。在下次初始化Servlet時,這個值可以在init()方法內被讀取。這一步是可選的。
  • 如果想計算一個會話內一個頁面的點量擊,那么可以使用isNew()方法來查看該會話內是否已點擊過相同的頁面。這一步是可選的。
  • 可以顯示全局計數(shù)器的值來顯示網站中的總點擊量。這一步是可選的。

在這里我假設Web容器不會被重新啟動。如果Web容器被重新啟動或Servlet被銷毀,計數(shù)器將被重置。

實例:

這個例子演示了如何實現(xiàn)一個簡單的頁面點擊計數(shù)器:

  1. import java.io.*; 
  2. import java.sql.Date; 
  3. import java.util.*; 
  4. import javax.servlet.*; 
  5. import javax.servlet.http.*; 
  6. public class PageHitCounter extends HttpServlet{  
  7.  private int hitCount;        
  8.  public void init() 
  9.  { 
  10.    // Reset hit counter. 
  11.    hitCount = 0; 
  12.  } 
  13.  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
  14.  { 
  15.    // Set response content type 
  16.    response.setContentType("text/html"); 
  17.    // This method executes whenever the servlet is hit 
  18.    // increment hitCount 
  19.    hitCount++; 
  20.    PrintWriter out = response.getWriter(); 
  21.    String title = "Total Number of Hits"
  22.    String docType = 
  23.    "<!doctype html public "-//w3c//dtd html 4.0 " + 
  24.    "transitional//en"> "; 
  25.    out.println(docType + 
  26.     "<html> " + 
  27.     "<head><title>" + title + "</title></head> " + 
  28.     "<body bgcolor="#f0f0f0"> " + 
  29.     "<h1 align="center">" + title + "</h1> " + 
  30.     "<h2 align="center">" + hitCount + "</h2> " + 
  31.     "</body></html>"); 
  32.  } 
  33.  public void destroy() 
  34.  { 
  35.    // This is optional step but if you like you 
  36.    // can write hitCount value in your database. 
  37.  } 

現(xiàn)在編譯上述Servlet并在web.xml文件中創(chuàng)建以下條目:

?
1
2
3
4
5
6
7
8
9
10
....
 <servlet>
   <servlet-name>PageHitCounter</servlet-name>
   <servlet-class>PageHitCounter</servlet-class>
 </servlet>
 <servlet-mapping>
   <servlet-name>PageHitCounter</servlet-name>
   <url-pattern>/PageHitCounter</url-pattern>
 </servlet-mapping>
....

現(xiàn)在使用URL http://localhost:8080/PageHitCounter來調用這個Servlet。每次頁面刷新時,計數(shù)器的值都會加1,這將產生如下所示的結果:

Servlet實現(xiàn)點擊計數(shù)器的方法

二、網站點擊計數(shù)器

很多時候,可能有興趣知道整個網站的總點擊量。在Servlet中,這也是非常簡單的,可以使用過濾器實現(xiàn)這一點。

以下是實現(xiàn)一個基于過濾器生命周期的簡單的網站點擊計數(shù)器需要的步驟:

  • 在過濾器的init()方法中初始化一個全局變量。
  • 每次調用doFilter方法時,增加全局變量。
  • 如果需要,可以使用一個數(shù)據(jù)庫表來存儲過濾器的destroy()方法中的全局變量的值。在下次初始化過濾器時,該值可以在init()方法內被讀取。這一步是可選的。

在這里我假設Web容器不會被重新啟動。如果Web容器被重新啟動或Servlet被銷毀,點擊計數(shù)器將被重置。

實例:

這個例子演示了如何實現(xiàn)一個簡單的網站點擊計數(shù)器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class SiteHitCounter implements Filter{ 
 private int hitCount;       
 public void init(FilterConfig config) throws ServletException{
   // Reset hit counter.
   hitCount = 0;
 }
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
   // increase counter by one
   hitCount++;
   // Print the counter.
   System.out.println("Site visits count :"+ hitCount );
   // Pass request back down the filter chain
   chain.doFilter(request,response);
 }
 public void destroy()
 {
   // This is optional step but if you like you
   // can write hitCount value in your database.
 }
}

現(xiàn)在來編譯上述Servlet并在web.xml文件中創(chuàng)建以下條目:

?
1
2
3
4
5
6
7
8
9
10
....
<filter>
  <filter-name>SiteHitCounter</filter-name>
  <filter-class>SiteHitCounter</filter-class>
</filter>
<filter-mapping>
  <filter-name>SiteHitCounter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
....

現(xiàn)在調用任意URL如URL:http://localhost:8080/。每次任意頁面被點擊時,計數(shù)器的值都會加1并且會在日志中顯示如下所示的消息:

Servlet實現(xiàn)點擊計數(shù)器的方法

 測試工程:https://github.com/easonjim/5_java_example/tree/master/servletbasics/test14

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/EasonJim/p/6980568.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 免费一区在线观看 | 亚洲毛片 | 不用播放器的免费av | 国产精品1区2区在线观看 | 精品国产一区二区三区在线观看 | 日本三级中文在线电影 | 久久国产日韩 | 在线观看一区二区三区视频 | 亚洲视频三区 | 91精品在线看 | 亚洲欧洲自拍 | 久久精品久久综合 | 久久大陆 | 91资源在线视频 | 久久久久久国产精品 | 亚洲视频精品在线观看 | 精品久久99 | 国产精品美女一区 | 国产日韩欧美一区 | 免费看黄在线 | 亚洲91| 国产成人精品一区二区 | 日日摸夜夜添夜夜添精品视频 | 国产精品视频久久久 | 欧美性猛交xxxx黑人猛交 | 亚洲精品久久久久久一区二区 | 人人爱人人爽 | 日韩高清在线一区 | 国产日韩欧美在线观看 | 9999热视频 | 视频三区 | 中文字幕不卡 | 国产色 | 一区二区三区四区在线 | 亚洲在线观看免费视频 | 天堂中文av | 欧美精品成人 | 天天色天天色 | 久久综合一区二区三区 | 精品欧美乱码久久久久久1区2区 | 91经典在线|