<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14,  comments - 8,  trackbacks - 0
    轉自http://www.tkk7.com/flyffa/archive/2006/12/14/87722.html

    基本方法:

    基本的方法,網上到處都是,在 java 中就是在 web.xml 注冊一個 Listener ,如下:

    <listener>

        <listener-class>xp.web.SessionCounter</listener-class>

    </listener>

    SessionCounter.java 實現 javax.servlet.http.HttpSessionListener 接口,分別在 sessionCreated 方法和 sessionDestroyed 方法中處理 session 數目。

     

    這樣的方法有一定的問題:

    1 、對于真正從網頁訪問的和搜索引擎的 spider 無法區分。

    2 、當 Tomcat 重啟時,加載了上次持久化的 session 時,無法準確計算在線數。

     

    第二個問題我們可以不予考慮,這是 tomcat 容器實現不標準的問題,我們要解決的是的第一個問題,如何知道你的訪問的是真實的。

     

    js 繞過搜索引擎

    做過 pv 統計的都知道,可以用 script 的方式得到你真實的 pageView 數目,我們現在要做的就是這樣的一件事情,我們在所有的頁面都加入一段話:

    <script type="text/javascript">

    document.write ("<iframe src='/sessionCountServlet' width=0 height=0 frameborder=no border=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no></iframe>");

    </script>

    然后我們寫上一個 servlet 來記錄這些真正的訪問者。

    import java.io.*;

     

    import javax.servlet.*;

    import javax.servlet.http.*;

    public class SessionCounterServlet extends HttpServlet {

        public SessionCounterServlet() {

            super();

        }

     

        public void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws IOException,

                ServletException {

     

            process(request, response);

     

        }

     

        public void doPost(HttpServletRequest request,

                           HttpServletResponse response) throws IOException,

                ServletException {

     

            process(request, response);

     

        }

     

        public void process(HttpServletRequest request,

                            HttpServletResponse response) throws IOException,

                ServletException {

            SessionCounter.put(request.getSession().getId());

    }

    }

     

    我們可以看到這個 servlet 只是做了一件事情,在 process 里面做了 SessionCounter.put(request.getSession().getId()); 這個動作。

    我們來看看我們的 SessionCounter 做了些什么:

    import javax.servlet.http.*;

    import java.util.Hashtable;

     

    public class SessionCounter implements HttpSessionListener {

        public SessionCounter() {

        }

     

        public static Hashtable m_real = new Hashtable();

     

        private static long count = 0;

     

        public void sessionCreated(HttpSessionEvent e) {

            count++;

        }

     

        public void sessionDestroyed(HttpSessionEvent e) {

            if (count > 0) {

                count--;

            }

            m_real.remove(e.getSession().getId());

        }

     

        public static long getSessionCount() {

            return count;

        }

     

        public static void put(String sessionId){

            m_real.put(sessionId,"1");

        }

     

        public static int getRealCount(){

            return m_real.size();

        }

    }

    我們記錄了一個靜態的 hash 表來記錄激活狀態的 sessionid ,并在 session 銷毀的時候將這個 sessionid 置為空。

    怎么把 servlet 配置到 web 應用中我就不羅唆了。

    posted on 2008-04-21 11:37 虎嘯龍吟 閱讀(303) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章檔案

    相冊

    友情鏈接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品无码久久久秋霞1 | 免费A级毛片无码A| 中文字幕无码免费久久9一区9| 亚洲国产精品VA在线看黑人| 国内精品乱码卡1卡2卡3免费| 黄页网站在线免费观看| 亚洲国产成人一区二区三区| 成人免费福利电影| 免费久久人人爽人人爽av| 亚洲中文字幕无码一去台湾| 亚洲色一色噜一噜噜噜| 国产免费久久精品99re丫y| 亚洲成AV人影片在线观看| 成人免费无码大片A毛片抽搐| 亚洲性无码一区二区三区| 青青青国产色视频在线观看国产亚洲欧洲国产综合| 亚洲精品伦理熟女国产一区二区 | 成人免费视频试看120秒| 亚洲日本VA午夜在线电影| 亚洲AV无码成人专区片在线观看| 色播在线永久免费视频| 无码人妻精品中文字幕免费| 老司机福利在线免费观看| 亚洲va乱码一区二区三区| 国产成人A人亚洲精品无码| 国产色爽免费视频| 99久久久精品免费观看国产| 两个人日本免费完整版在线观看1| 亚洲熟妇av午夜无码不卡| 麻豆亚洲AV永久无码精品久久| 国产又长又粗又爽免费视频 | 妞干网免费观看视频| 欧洲人免费视频网站在线| 日本一区二区三区在线视频观看免费| 亚洲精品国产情侣av在线| 久久亚洲国产中v天仙www | 久久久久精品国产亚洲AV无码| 亚洲精品无码久久一线| 免费成人午夜视频| 日韩激情无码免费毛片| 无码国产精品一区二区免费I6|