案例说明
一个项目中所有的资源被访问都要对访问量进行累加
案例思路:
1.当项目被第一次访问时,创建一个变量,设置其值为1,保存在ServletContext中
2.当以后访问的时候,就可以从ServletContext中获取这个变量,然后在其基础上加1
代码思路
1.获取ServletContext对象
2.查看是否存在名为count的属性,如果存在,说明不是第一次访问;如果不存在,就说明是第一次访问。
3.第一次访问:调用ServletContext的setAttribute()方法传递一个属性,名为count,值为1
4.第2~n次访问:调用ServletContext的getAttribute()方法获取原来的访问量,给访问量+1,再调用ServletContext的setAttribute()方法存值。
代码:
CountServlet.java
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 统计访问量
*/
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){
servletContext.setAttribute("count",1);
}else {
servletContext.setAttribute("count",count+1);
}
PrintWriter printWriter = response.getWriter();
printWriter.print("<h1>" + count + "</h1>");
}
}
这个简单的小栗子我放到github上,有兴趣可以试一下。就是ServletContext的方法的是用,更助于了解ServletContext。
https://github.com/leleqin/visitCount