ServletContext对象和ServletConfig对象

ServletContext对象和ServletConfig对象

ServletContext(servlet上下文)
  • 服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象
  • ServletContext对象被所有的用户或请求共享
  • ServletContext对象的生命周期是从服务器开启到服务器关闭
  • ServletContext对象的作用域是整个项目
  • 可以用于配置全局的初始化参数,如:在web.xml中配置一个默认的超级管理员账户和密码
ServletContext用于统计网站浏览量
protected void service(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	ServletContext context = this.getServletContext();
	Object number = context.getAttribute("number");
	if(number == null){
		context.setAttribute("number", 1);
	}else{
		context.setAttribute("number", (Integer)number+1);
	}
	resp.setCharacterEncoding("utf-8");
	resp.setContentType("text/html; charset=utf-8");
	resp.getWriter().write("当前浏览量:"+context.getAttribute("number"));
}

测试结果为:
在这里插入图片描述

ServletContext获取初始化全局配置
  • 在web.xml中配置初始化全局参数
	<context-param>
	    <param-name>name</param-name>
	    <param-value>张三</param-value>
	</context-param>
  • servlet中获取
//获取单个初始化参数
String name = context.getInitParameter("name");
//获取所有初始化参数,返回的是枚举类型
Enumeration<String> names = context.getInitParameterNames();
	while(names.hasMoreElements()){
		String name = names.nextElement();
	}
ServletContext其他常见的功能

context.getContextPath():获取项目名
context.getRealPath("/"):获取到服务器的真实路径
context.getRequestDispatcher(""):实现跳转
context.getResourceAsStream(""):读取资源文件
removeAttribute(name):根据指定的key从域对象里面删除数据

ServletConfig
  • getServletName():获取web.xml文件中配置的Servlet名称。
  • getServletContext():获取当前项目的ServletContext对象
  • getInitParameter(String name):根据给定的初始化参数,返回匹配的初始化参数值。
  • getInitParameterNames():返回一个Enumeration对象,该对象包含了所有存放在web.xml中该servlet下的所有的初始化参数名。
ServletContext和ServletConfig二者区别

从作用范围来说,ServletConfig作用于某个特定的Servlet,即从该Servlet实例化,那么就开始有效,但是该Servlet之外的其他Servlet不能访问;ServletContext作用于某个webapp,即在一个webapp中相当于一个全局对象,在Servlet容器启动时就已经加载,对于不同的webapp,有不同的ServletContext。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值