欢迎登录 点击注册>>
记住账号
首页 > 动态 > 正文

ServletContext实现统计访问次数

2015-11-11 11:27  来源: C博客

ServletContext是一个域对象,可以通过它实现Servlet之间的数据通信。也就是说ServletContext域中的数据是被应用中的所有资源共享的。

现在根据ServletContext的这个特性,我们来完成一个案例:使用ServletContext的特性来完成统计站点的访问次数,详情请参考统计站点访问次数案例详解,代码请下载配套文档。具体步骤如下所示:

(1)创建一个web应用,Example16,在该应用下建立一个Servlet类,CountServlet.

主要代码如例1-1所示:

例1-1 CountServlet.java

public class CountServlet extends HttpServlet {

/*

* 统计站点访问次数

* */

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

ServletContext servletContext=this.getServletContext();

Integer count=(Integer) servletContext.getAttribute(“count”);

if(count == null){

//count为空,说明是第一访问该servlet

count=1;

servletContext.setAttribute(“count”,count);

}else{

count=count+1;

servletContext.setAttribute(“count”,count);

}

//向浏览器端响应访问的次数

PrintWriter p= response.getWriter();

p.print(“”+count+“”);

}

}

(2)CountServlet在web.xml文件中配置的访问路径为:“/CountServlet”。

(3)将Example16应用发布到Tomcat服务器,启动Tomcat服务器,在浏览器端地址栏输入:http://localhost:8080/Example16/CountServlet

浏览器显示结果,如图1-1所示:

(4)再次访问http://localhost8080/Example16/CountServlet,

浏览器显示结果,如图1-2所示:

图1-2浏览器显示结果

 由图1-1、1-2可知,当第一次访问的时候,访问次数是1,所以在浏览器端打印1,第二次访问,访问次数是2,所以在浏览器端打印2,以此类推下去,访问多少次,浏览器就打印多少。

下面我们来对CountServlet中的代码进行详细解释,如下所示:

 首先获得ServletContext对象;

在从ServletContext域中获取属性名称为count的属性值;

如果count为null,说明是第一次访问该web应用的资源,因此设置count的值为1,并且将count再次存放在ServletContext域中;

如果count不为null,说明不是第一访问,因此在之前访问次数的基础上将count加1,然后再将count存入ServletContext域中;

最后使用response对象,向浏览器端响应一个字符流,"<h1>”+count+“<h1>”,即访问次数,response对象的具体用法,后面我们会详细的学习。

1、凡本网注明 “来源:正保IT教育网”的所有作品,版权均属正保IT教育网所有,未经本网授权不得转载、链接、转贴或以其他方式使用;已经本网授权的,应在授权范围内使用,且必须注明“来源:正保IT教育网”。违反上述声明者,本网将追究其法律责任。

2、本网部分资料为网上搜集转载,均尽力标明作者和出处。对于本网刊载作品涉及版权等问题的,请作者与本网站联系,本网站核实确认后会尽快予以处理。本网转载之作品,并不意味着认同该作品的观点或真实性。如其他媒体、网站或个人转载使用,请与著作权人联系,并自负法律责任。

联系方式:010-82329966



网站首页 走进正保

正保远程教育Copyright ©2020 www.itatedu.com All Rights Reserved
京ICP证030467号 京ICP证030467号-9 京公网安备11010802023462
咨询热线:010-82329966