使用ServletContext对象统计网站的访问量
2015-08-24 16:03
721 查看
功能
实现访问网站总人数的记录,以及基于某一特定起点的访问记录。
方案
由于网站中的资源较多,要想保留每一次的访问计数则需要一个从应用已启动就存在的空间,并且应用中的所有资源都能访问到这个存储空间,所有使用ServletContext及Servlet上下文对象保存每一次的访问计数。
步骤
Step1:新建Context01Servlet.java和Context02Servlet.java文件
两个文件内容一致,获取上下文对象后判断是否是第一次访问,是第一次则初始值为1,不是则增加1.
Step2 : 配置web.xml
step3: 部署运行
![](http://img.blog.csdn.net/20150824160016720)
=====================
关键知识点:
获取Servlet上下文:
ServletContext context=getServletContext();
Object count=context.getAttribute(“count”);
实现访问网站总人数的记录,以及基于某一特定起点的访问记录。
方案
由于网站中的资源较多,要想保留每一次的访问计数则需要一个从应用已启动就存在的空间,并且应用中的所有资源都能访问到这个存储空间,所有使用ServletContext及Servlet上下文对象保存每一次的访问计数。
步骤
Step1:新建Context01Servlet.java和Context02Servlet.java文件
两个文件内容一致,获取上下文对象后判断是否是第一次访问,是第一次则初始值为1,不是则增加1.
[code]package web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Context01Servlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ //保证正确读取Post提交来的中文 request.setCharacterEncoding("utf-8"); //保证正确输出中文 response.setContentType("text/html;charset=utf-8"); //获取输出流对象,并输出信息 PrintWriter out=response.getWriter(); //获取全局的上下文对象 ServletContext context=getServletContext(); Object count=context.getAttribute("count"); if(count==null){ context.setAttribute("count", context.getInitParameter("count")); //context.setAttribute("count", 1); }else{ context.setAttribute("count", Integer.parseInt(count.toString())+1); } out.print("总浏览量为:"+context.getAttribute("count")); } }
Step2 : 配置web.xml
[code]<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- Servlet上下文 --> <context-param> <param-name>count</param-name> <param-value>1000</param-value> </context-param> <servlet> <servlet-name>context01Servlet</servlet-name> <servlet-class>web.Context01Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>context01Servlet</servlet-name> <url-pattern>/context01</url-pattern> </servlet-mapping> <servlet> <servlet-name>context02Servlet</servlet-name> <servlet-class>web.Context02Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>context02Servlet</servlet-name> <url-pattern>/context02</url-pattern> </servlet-mapping> </web-app>
step3: 部署运行
=====================
关键知识点:
获取Servlet上下文:
ServletContext context=getServletContext();
Object count=context.getAttribute(“count”);
相关文章推荐
- 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
- 关于大型网站技术演进的思考(三)--存储的瓶颈(3)
- Maven项目使用步骤
- AWS发布架构师认证的专业解决方案
- mtk display 架构
- FMS2015:RISL软件架构保障系统持续高性能
- 架构、框架和设计模式关系
- OpenvSwitch架构
- FMS2015:Instruction-Based NPU设计
- 各大型网站的架构分析
- 本地调试,ie 谷歌浏览器都正常,但是将网站部署到服务器上发现ie内核css样式出现问题
- 学习笔记:静态网站调用头部和尾部的3个方法
- 网站图片加载速度
- jQuery实现的类似淘宝网站搜索框样式代码分享
- STM32系统架构
- 留意架构图里的空白区域
- 理解RESTful架构
- openstack cinder+drbd+nfs实现高可用存储【kilo版】
- 大型网站技术架构学习笔记
- 牛人网站汇总