ServletContext

目录

 

ServletContext概述

ServletContext方法

ServletContext应用


ServletContext概述

  • ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放。
  • 所有Servlet共享同一个ServletContext对象,因此Servlet之间可以通过ServletContext对象来实现通信。
  • ServletContext对象是在servlet接口中init方法中有的,而后来的HttpServlet继承自servlet接口。
  • ServletContext中的属性都是用键-值形式存储的。
  • 所以获取ServletContext方法有:

this.getServletContext();
this.getServletConfig().getServletContext();


ServletContext方法

 得到属性值 =  Object javax.servlet.ServletContext.getAttribute(String arg0)

设置属性 = void javax.servlet.ServletContext.setAttribute(String arg0, Object arg1)

删除属性 = void javax.servlet.ServletContext.removeAttribute(String arg0)

获取输入流 = InputStream javax.servlet.ServletContext.getResourceAsStream(String arg0)

获取真实路径 = String javax.servlet.ServletContext.getRealPath(String arg0)

获取所有路径 = getServletContext().getResourcePaths("/WEB-INF")

实例:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		//获取Context输入流对象 参数是访问根目录也就是WebRoot中的文件
		InputStream is1 =  this.getServletContext().getResourceAsStream("/index.jsp");
		System.out.println(is1);
		//如果参数不为根目录下的文件,就是用类加载器获得输入流
		InputStream is2 = ServletContext03.class.getClassLoader().getResourceAsStream("/Servlet");
		System.out.println(is2);
		//获取真实路径 
		String rp = this.getServletContext().getRealPath("/index.jsp");
		System.out.println(rp);
		//获取所有资源地址
		Set<String> grp = this.getServletContext().getResourcePaths("/WEB-INF");
		System.out.println(grp);
		
		/*
		 * 1)向ServletContext中添加属性
		 * 2)获取ServletContext中的属性
		 */
		
		this.getServletContext().setAttribute("1", "aaa");
		String param1 =  (String) this.getServletContext().getAttribute("1");
		System.out.println(param1);
		
                //删除属性
		this.getServletContext().removeAttribute("1");
                System.out.println(param1);
	}
}

ServletContext应用

 访问量统计实例:

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

		/*访问统计
		 * 1.获得ServletContext对象
		 * 2.判断是否有name = 访问量 的属性
		 * 3.有就调用setattribute方法设置属性,+1并 保存回去
		 * 4.没有就调用setattribute方法设置一个 访问量属性 值为1
		 */
		
		//1
		ServletContext pv = this.getServletContext();
		//2
		Integer count= (Integer)pv.getAttribute("pv1");
		if(count != null){
			pv.setAttribute("pv1", count+1);
		}
		else{
			
			pv.setAttribute("pv1", 1);
			
		}
		
		System.out.println(count);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值