学习了html、jsp、servlet几天,练习一个小demo,通过HttpServlet中的getServletContext() 方法,实现统计网站访问总人数的一个小功能。代码如下:
我们先自定义一个Servlet类,实现HttpServlet,
public class AccountServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
//获取Servlet上下文
ServletContext context = getServletContext();
//context.getAttribute返回的是Object对象,并且返回值是null
Object obj = context.getAttribute("total");
//定义浏览人数,第一次返回null,执行这一句
int count = 0;
//第一次跳过,第二次访问的时候,获取第一次访问count+1后的值,转为int型赋给count
if(obj!=null){
count = (Integer)obj;
}
//每次访问,将count+1
context.setAttribute("total", count+1);
//访问次数输出在页面上
writer.write(count+1+"");
writer.flush();
}
}
在我们的web.xml中定义:
<servlet>
<servlet-name>accountServlet</servlet-name>
<servlet-class>org.great.servlet.AccountServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>accountServlet</servlet-name>
<url-pattern>/account</url-pattern>
</servlet-mapping>
对外,我们的访问入口是account,看效果图:
第一次访问的时候,页面输出1
第二次访问,页面输出2
每打开一个页面,浏览时,次数都+1。