一个项目中所有资源被访问都要对访问量进行累加操作
创建一个int类型的变量,用来保存访问量,然后把它保存在ServletContext的域中,这样可以保存所有的Servlet都可以访问的到
- 最初时ServletContext中没有保存访问量的属性
- 当本站中第一次被访问时,创建一个变量,设置值为1保存在> ServletContext中
- 当以后的访问时,就可以从ServletContext中获取这个变量,然后在其基础上加1
- 获取ServletContext对象,查看是否存在count属性,如果存在,说明不是第一次访问,如果不存在,说明是第一次访问
第一次访问:调用Servlet的Context的setAttribute()传递一个属性,名字为count值为1
第二次访问:调用ServletContext的getAttribute()方法获得原来的访问量,给访问量进行加一操作,在调用ServletContext的setAttribute()方法完成设置
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
@WebServlet(name = "AnLiServlet",urlPatterns = "/AnLiServlet")
public class AnLiServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/* 最初时ServletContext中没有保存访问量的属性
当本站中第一次被访问时,创建一个变量,设置值为1保存在> ServletContext中
当以后的访问时,就可以从ServletContext中获取这个变量,然后在其基础上加1
获取ServletContext对象,查看是否存在count属性,如果存在,说明不是第一次访问,如果不存在,说明是第一次访问*/
ServletContext app = this.getServletContext();
Integer count = (Integer) app.getAttribute("count");
if(count == null){
app.setAttribute("count",1);
}else {
app.setAttribute("count",count+1);
}
/*
向浏览器输出需要使用响应对象
*/
PrintWriter pw = response.getWriter();
pw.println("<h1>" + count + "</h1>");
}
}
网友评论