开发者学堂课程【Servlet 入门:网站访问量统计小案例】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/34/detail/757
网站访问量统计小案例
内容介绍
一、网站访问量统计小案例
一、网站访问量统计小案例
练习:访问量统计
一个项目中所有的资源被访问都要对访问量进行累加!
创建一个 int 类型的变量,用来保存访问量,然后把它保存到 SerletCentet 的域中,这样可以保存所有的 Servlet 都可以访问到!
*最初时,SenletContext 中没有保存访问量相关的属性;
*当本站第一次被访问时,创建一个变量,设置其值为1;保存到 SeCotet 中;
*当以后的访问时,就可以从 sevletCentet 中获取这个变量,然后在其基础之上加1。*.获取 ServletContext 对象,查看是否存在名为 count 的属性,如果存在,说明不是第一次访问,如果不存在,说明是第一-次访问;
第一次访问:调用 Servletcontex t的 setAttribute 传递一个属性,名为 count, 值为1;
第2~N次访问:调用 SendetContext 的 getAttribute(方法获权原来的访问量,给访问量加1,再调用 Servletcontext 的 setAttribute 方法完成设置。
相信一定见过很多访问量统计的网站,即“本页面被访问过xxx次”。因为无论是哪个用户访问指定页面,都会累计访问量,所以这个访问量统计应该是整个项目共享的!很明显,这需要使用 ServletContext 来保存访问量。
servletContext application
=this.getSexyhetContext()
Integer count
=(Integer) applicatdon.getattribute ("count")]:
if(count == nall) {
count = 1)
} else {
count++
}
sesponse. setContentTxee ("text/huml.charset
=utf-8");
Eesponse.getWriter() print ("
本页面一共被访问" + count + “次!
”);
epplication. setAttribute ("count", count) ;
例如:
public class AServlet extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
1. 获取 ServletContext 对象
2. 从 ServletContext 对象中获取名为 count 的属性
3. 如果存在:给访问量加1,然后再保存回去;
4.如果不存在:说明是第一次访问,向 Servletcontext 中保存名为 count 的属性,值为1
servletContext app = this.getServletcontext ();
Integer count = (Integer) app. getAttribute ("count");
if(count y null) {
app. etAttribute ("count", 1);
else (
app. setAttribute ("count", count+1);
向浏览器输出
需要使用响应对象!
PrintWriter pw = response getWriter() ;
pw-print("
" + count + "
") ;