91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Servlet怎么實現一個點擊計數器功能

發布時間:2020-12-02 17:27:14 來源:億速云 閱讀:255 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關利用Servlet怎么實現一個點擊計數器功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、Web頁面的點擊計數器

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

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

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

實例:

這個例子演示了如何實現一個簡單的頁面點擊計數器:

import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class PageHitCounter extends HttpServlet{  
 private int hitCount;        
 public void init() 
 { 
   // Reset hit counter.
   hitCount = 0;
 } 
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
 {
   // Set response content type
   response.setContentType("text/html");
   // This method executes whenever the servlet is hit 
   // increment hitCount 
   hitCount++; 
   PrintWriter out = response.getWriter();
   String title = "Total Number of Hits";
   String docType =
   "<!doctype html public \"-//w3c//dtd html 4.0 " +
   "transitional//en\">\n";
   out.println(docType +
    "<html>\n" +
    "<head><title>" + title + "</title></head>\n" +
    "<body bgcolor=\"#f0f0f0\">\n" +
    "<h2 align=\"center\">" + title + "</h2>\n" +
    "<h3 align=\"center\">" + hitCount + "</h3>\n" +
    "</body></html>");
 }
 public void destroy() 
 { 
   // This is optional step but if you like you
   // can write hitCount value in your database.
 } 
} 

現在編譯上述Servlet并在web.xml文件中創建以下條目:

....
 <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>
....

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

利用Servlet怎么實現一個點擊計數器功能

二、網站點擊計數器

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

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

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

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

實例:

這個例子演示了如何實現一個簡單的網站點擊計數器:

// 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.
 } 
} 

現在來編譯上述Servlet并在web.xml文件中創建以下條目:

....
<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>
....

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

利用Servlet怎么實現一個點擊計數器功能

上述就是小編為大家分享的利用Servlet怎么實現一個點擊計數器功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋州市| 嘉兴市| 新蔡县| 信宜市| 纳雍县| 天津市| 黄陵县| 山阳县| 太白县| 贵定县| 依兰县| 兴宁市| 唐海县| 安阳市| 岗巴县| 武强县| 高州市| 潼南县| 吉木萨尔县| 鹤山市| 云阳县| 普定县| 开江县| 晋宁县| 楚雄市| 雷州市| 宣城市| 建德市| 广河县| 北碚区| 金湖县| 安新县| 英德市| 石台县| 昌江| 西平县| 瓦房店市| 紫阳县| 五常市| 阳东县| 扎赉特旗|