JAVA-WEB 核心之 Servlet (ServletContext 的作用)

124 篇文章 1 订阅
96 篇文章 0 订阅


package demo;

import java.io.IOException;
import java.util.Enumeration;

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 servletContextDemo extends HttpServlet {
	
	/*
	 * 
	 * ServletContext的作用
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//(1) 获得web应用全局的初始化参数
		//获得context对象
		ServletContext context = this.getServletContext();
		//获得参数
		String driverAttr = (String) context.getInitParameter("driver");
		response.getWriter().println(driverAttr);
		//获得所有参数的名字
		Enumeration<String> e = context.getInitParameterNames();
		while(e.hasMoreElements()) {
			response.getWriter().println("attr:"+e.nextElement());
		}
		
		//(2) 获得web应用中任何资源的绝对路径工程根目录就是/ 或者不加符号,并且只能填写webcontent目录下的地址
		//通过类加载器获得src目录下的配置文件(发布后在发布目录的WEB-INF/classes目录)
		String realPath = context.getRealPath(servletContextDemo.class.getClassLoader().getResource("c3p0-config.xml").getPath());
		response.getWriter().println(realPath);
		
		//(3) ServletContext是一个域对象(重要 重要 重要)
		//ServletContext域对象的作用范围:整个web应(所有的web资源都可以随意向    servletcontext域中存取数据,数据可以共享)
		//		域对象的通用的方法:
		//		setAtrribute(String name,Object obj);
		//		getAttribute(String name); 如果没有该数据返回null
		//		removeAttribute(String name) 
		//这里只用一个servlet模拟,实质上在一个servlet设置一个参数所有的servletcontext域中都可访问该参数
		context.setAttribute("testContent", "testText");
		//知道什么类型就直接强转了
		response.getWriter().println(context.getAttribute("testContent")); 
		context.removeAttribute("testContent");
		response.getWriter().println(context.getAttribute("testContent")); 
		
		
		
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值