用servlet记录用户访问次数
用servlet记录用户访问次数网站的计数器功能,浏览者每访问一次网站,计数器就累加一次。实现计数器主要是在servlet中应用ServletContext接口,Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象。当Servlet容器终止一个Web应用时,ServletContext对象也会被销毁,所以该对象与Web应用程序有同样的生命周期。也就是说,整个We
·
用servlet记录用户访问次数
网站的计数器功能,浏览者每访问一次网站,计数器就累加一次。实现计数器主要是在servlet中应用ServletContext接口,Servlet容器在启动一个Web应用时,会为它创建一个ServletContext对象。当Servlet容器终止一个Web应用时,ServletContext对象也会被销毁,所以该对象与Web应用程序有同样的生命周期。也就是说,整个Web应用的组件可以共享ServletContext对象中存放的共享数据。
在ServletContext接口中存放共享数据的方法包括以下几种:
- setAttribute() 存放共享数据
- removeAttribute() 删除共享数据
- getAttribute() 获取共享数据
一、新建名为CounterServlet的servlet类,在该类的doPost()方法中实现统计用户的访问次数
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 CounterServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletContext(); // 获得ServletContext对象
Integer count = (Integer)context.getAttribute("counter"); // 从ServletContext中获得计数器对象
if(count == null){ // 如果为空,则在ServletContext中设置一个计数器的属性.即在第一次提交请求时创建该属性
count = 1;
context.setAttribute("counter", count);
}else{ // 之后的请求,每次对计数器值加1
context.setAttribute("counter", count+1);
}
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>统计网站访问次数</TITLE></HEAD>");
out.println(" <BODY>");
out.print("<h2><font color='gray'> ");
out.print("您是第 "+context.getAttribute("counter")+" 位访客");
out.println("</font></h2>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)