servlet之ServletContext的应用

概念

ServletContext是servlet的三大域对象的应用之一(servlet的三大域对象应用为:request、session、application(ServletContext))

Cookie对象存于用户的客户端,Session对象每个客户端有一个存于服务器端,ServletContext对象存于服务器端,可被所有客户端共享。所以当涉及多个用户共享信息,而信息量又不大不想存到数据库的时候,可以考虑使用ServletContext对象

常见应用

1、网页计数器

2、显示多少人同时在线

3、简单的聊天室功能

ServletContext的特点

1、Web应用服务器会为在其中的每一个Web应用生成一个ServletContext对象,该ServletContext对象代表该Web应用,并且为该Web应用的所有客户端所共享。获得ServletContext对象的引用的常见方法有二,一是

ServletContext context=getServletContext();

二是

ServletContext context=getServletConfig().getServletContext()

2、一个Web应用的所有Servlet对象共用一个ServletContext对象,因此Servlet对象可以通过ServletContext对象进行通信。ServletContext对象又叫做context域对象,简单的公共聊天室经常用到它。

3、在web应用关闭或reload或者Tomcat关闭时ServletContext会销毁

举例说明ServletContext对象的使用

作用:统计网站的访问量

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out=response.getWriter();
		response.setContentType("text/html");//响应正文的MIME类型
		response.setCharacterEncoding("UTF-8");//响应的编码格式
		ServletContext context=this.getServletConfig().getServletContext();//获得ServletContext对象
		Integer count=(Integer)context.getAttribute("counter");//从ServletContext对象中获得计数器对象
		if(count==null) {//如果为空,就在ServletContext对象中设置一个计数器的属性
			count=1;
			context.setAttribute("counter", count);
		}else {
			context.setAttribute("counter", count+1);//如果不为空就在该计数器的属性上加一
		}


猜你喜欢

转载自blog.csdn.net/qll19970326/article/details/80724930
今日推荐