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

溫馨提示×

溫馨提示×

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

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

JSP如何實現訪問量計數

發布時間:2021-11-22 09:54:56 來源:億速云 閱讀:266 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關JSP如何實現訪問量計數,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

有時要為每一篇文章統計其點擊次數,如果每一次瀏覽都要更新一次庫的話,那性能在訪問量很大的情況下,服務器的壓力就會很大了,比較好一點的方法就是先將要更新的數據緩存起來,然后每隔一段時間再利用數據庫的批量處理,批量更新庫。

那么下面本JSP教程提供源碼如下:

CountBean.java   /*  * CountData.java  *  * Created on 2009年6月30日, 下午4:44  *  * To change this template, choose Tools | Options and locate the template under  * the Source Creation and Management node. Right-click the template and choose  * Open. You can then make changes to the template in the Source Editor.  */    package com.tot.count;   /**  *  *   */  public class CountBean {   private String countType;   int countId;   /** Creates a new instance of CountData */   public CountBean() {}   public void setCountType(String countTypes){  this.countType=countTypes;   }   public void setCountId(int countIds){  this.countId=countIds;   }   public String getCountType(){  return countType;   }   public int getCountId(){  return countId;   }  }    CountCache.java   /*  * CountCache.java  *  * Created on 2009年6月30日, 下午5:01  *  * To change this template, choose Tools | Options and locate the template under  * the Source Creation and Management node. Right-click the template and choose  * Open. You can then make changes to the template in the Source Editor.  */   package com.tot.count;  import java.util.*;  /**  *  * @author http://www.tot.name  */  public class CountCache {   public static LinkedList list=new LinkedList();    /** Creates a new instance of CountCache */   public CountCache() {}   public static void add(CountBean cb){  if(cb!=null){   list.add(cb);  }   }  }    CountControl.java    /*   * CountThread.java   *   * Created on 2009年6月30日, 下午4:57   *   * To change this template, choose Tools | Options and locate the template under   * the Source Creation and Management node. Right-click the template and choose   * Open. You can then make changes to the template in the Source Editor.   */   package com.tot.count;  import tot.db.DBUtils;  import java.sql.*;  /**  *  * @author http://www.tot.name  */  public class CountControl{    private static long lastExecuteTime=0;//上次更新時間    private static long executeSep=60000;//定義更新間隔時間,單位毫秒   /** Creates a new instance of CountThread */   public CountControl() {}   public synchronized void executeUpdate(){  Connection conn=null;  PreparedStatement ps=null;  try{   conn = DBUtils.getConnection();    conn.setAutoCommit(false);   ps=conn.prepareStatement("update t_news set hitshits=hits+1 where id=?");   for(int i=0;i﹤CountCache.list.size();i++){  CountBean cb=(CountBean)CountCache.list.getFirst();  CountCache.list.removeFirst();   ps.setInt(1, cb.getCountId());  ps.executeUpdate();⑴  //ps.addBatch();⑵   }   //int [] counts = ps.executeBatch();⑶   conn.commit();  }catch(Exception e){   e.printStackTrace();  } finally{  try{   if(ps!=null) {  ps.clearParameters();  ps.close();  ps=null;  }   }catch(SQLException e){}   DBUtils.closeConnection(conn);   }  }  public long getLast(){   return lastExecuteTime;  }  public void run(){   long now = System.currentTimeMillis();   if ((now - lastExecuteTime) ﹥ executeSep) {  //System.out.print("lastExecuteTime:"+lastExecuteTime);  //System.out.print(" now:"+now+"\n");  // System.out.print(" sep="+(now - lastExecuteTime)+"\n");  lastExecuteTime=now;  executeUpdate();   }   else{  //System.out.print("wait for "+(now - lastExecuteTime)+" seconds:"+"\n");   }  }  }  //注:如果你的數據庫驅動支持批處理,那么可以將⑵,⑶標記的代碼前的注釋去掉,同時在代碼⑴前加上注釋    類寫好了,下面是在JSP中如下調用。   ﹤%  CountBean cb=new CountBean();  cb.setCountId(Integer.parseInt(request.getParameter("cid")));  CountCache.add(cb);  out.print(CountCache.list.size()+"﹤br﹥");  CountControl c=new CountControl();  c.run();  out.print(CountCache.list.size()+"﹤br﹥");  %﹥

關于“JSP如何實現訪問量計數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

jsp
AI

广宁县| 岳池县| 湖州市| 青龙| 千阳县| 渝北区| 马关县| 溆浦县| 长兴县| 彰化市| 水富县| 永泰县| 贵定县| 大石桥市| 库尔勒市| 岳西县| 慈利县| 广汉市| 泗洪县| 修水县| 十堰市| 上林县| 新邵县| 安陆市| 垦利县| 肇源县| 佳木斯市| 双辽市| 东乌珠穆沁旗| 成都市| 大渡口区| 揭东县| 昆山市| 拉孜县| 来凤县| 磴口县| 元阳县| 泰来县| 普宁市| 白河县| 靖江市|