資源描述:
《頁面訪問量統(tǒng)計實例.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、頁面訪問量統(tǒng)計實例http://book.51cto.com?2008-08-1313:01?孫鑫?電子工業(yè)出版社?我要評論(0)·摘要:《Servlet/JSP深入詳解:基于Tomcat的Web開發(fā)》第2章Servlet技術(shù),這一章詳細的介紹Java服務(wù)器端編程的重要技術(shù)——Servlet,本節(jié)為大家介紹Servlet生命周期頁面訪問量統(tǒng)計實例?!?biāo)簽:Servlet??JSP??Tomcat??Web開發(fā)??Servlet??JSP深入詳解·Oracle幫您準(zhǔn)確洞察各個物流環(huán)節(jié)2.5.2?頁面訪問量統(tǒng)計實例有時候,我們可能需要統(tǒng)計Web站點上的一個特定頁
2、面的訪問次數(shù),考慮這樣一個場景,你為了宣傳一個產(chǎn)品,在某個門戶網(wǎng)站花錢做了一個鏈接,你希望知道產(chǎn)品頁面每天的訪問量,借此了解廣告的效果。要完成上述功能,可以使用ServletContext對象來保存訪問的次數(shù)。我們知道一個Web應(yīng)用程序只有一個ServletContext對象,而且該對象可以被Web應(yīng)用程序中的所有Servlet所訪問,因此使用ServletContext對象來保存一些需要在Web應(yīng)用程序中共享的信息是再合適不過了。要在ServletContext對象中保存共享信息,可以調(diào)用該對象的setAttribute()方法,要獲取共享信息,可以調(diào)用該
3、對象的getAttribute()方法。針對本例,我們可以調(diào)用setAttribute()方法將訪問計數(shù)保存到上下文對象中,新增一次訪問時,調(diào)用getAttribute()方法從上下文對象中取出訪問計數(shù)加1,然后再調(diào)用setAttribute()方法保存回上下文對象中。這個實例的開發(fā)主要有下列步驟。Step1:編寫CounterServlet類在%CATALINA_HOME%webappsch02src目錄下新建CounterServlet.java,代碼如例2-14所示。例2-14?CounterServlet.java1.?packageorg.s
4、unxin.ch02.servlet;2.?3.?importjava.io.IOException;4.?importjava.io.PrintWriter;5.?6.?importjavax.servlet.ServletContext;7.?importjavax.servlet.ServletException;8.?importjavax.servlet.http.HttpServlet;9.?importjavax.servlet.http.HttpServletRequest;10.?importjavax.servlet.http.HttpS
5、ervletResponse;11.?12.?publicclassCounterServletextendsHttpServlet13.?{14.????publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)15.????????????throwsServletException,IOException16.????{17.????????ServletContextcontext=getServletContext();18.????????Integercount=null;19.
6、????????synchronized(context)20.????????{21.????????????count=(Integer)context.getAttribute("counter");22.????????????if(null==count)23.????????????{24.????????????????count=newInteger(1);25.????????????}26.????????????else27.????????????{28.????????????????count=newInteger(count.i
7、ntValue()+1);29.????????????}30.????????????context.setAttribute("counter",count);31.????????}32.????????33.????????resp.setContentType("text/html;charset=gb2312");34.????????PrintWriterout=resp.getWriter();35.?36.????????out.println("
");37.????????out.println("
頁8、面訪問統(tǒng)計
");38.???????