域对象——ServletContext及应用

多个Servlet依靠ServletContext共享数据。

获取ServletContext的方式有:

1.ServletConfig中的getServletContext();

2.GenericServlet中的getServletContext();

。。。

案例:获取访问网站的次数

public class AServlet extends HttpServlet {

	/**
	 * 统计网站的访问量:
	 * 1.获取ServletContext对象
	 * 2.获取其属性count
	 * 3.如果count不存在,保存count值为1
	 * 4.如果已经存在,将count+1保存
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		ServletContext app=this.getServletContext();
		Integer count=(Integer)app.getAttribute("count");
		if(count==null){
			app.setAttribute("count", 1);
		}
		else
		{
			app.setAttribute("count", count+1);
		}
		
		//向网页输出访问量
		PrintWriter out=response.getWriter();
		out.print("<h1>"+count+"</h1>");
	}

}

还可以用于获取资源:

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//获取真实路径
		String path=this.getServletContext().getRealPath("/index.jsp");
		System.out.println(path);
		//获取资源流
		InputStream path2=this.getServletContext().getResourceAsStream("/index.jsp");
		System.out.println(path2);
		
		//获取指定目录下的所有资源路径
		Set <String> path3=this.getServletContext().getResourcePaths("/WEB-INF");
		System.out.println(path3);
		
	}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fandoudou123/article/details/49892789
个人分类: JAVA web
上一篇实现Servlet的方式二、三
下一篇响应头的练习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭