【servelt原理_15_ServletContext对象】

ServletContext对象【重点】

1.ServletContext概述

每一个web程序都有且仅有一个servletContext对象,又称Application对象,从名称当中可知,该对象与应用程序有关。在WEB容器启动时,会为每一个应用程序创建一个ServletContext对象。
该对象有两大作用:
第一:作为域对象来共享数据,此数据在整个应用程序中共享;
第二:该对象中保存了当前应用程序相关信息。例如可以通过getServletInfo()方法获取当前服务器信息,getRealPath()获取资源的真实路径等。

2.ServletContext对象获取
获取servletContext对象的途径有很多。比如:
①.通过request对象获取

ServletContext servletContext = req.getServletContext();

②.通过session对象获取

ServletContext servletContext = request.getSession().getServletContext();

③.通过servletConfig对象获取,在Servlet标准中提供了ServletConfig方法

ServletContext servletContext = getServletConfig().getServletContext();

④.直接获取 Servlet类中提供了直接获取ServletContext对象的方法

ServletContext servletContext = getServletContext();

基本使用

@WebServlet("/SC")
public class ServletCon extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {
		ServletContext servletContext = getServletContext();
		//常用方法
		//获取当前服务器的版本信息
		String ServletInfo = servletContext.getServerInfo();
		System.out.println("服务器当前的版本信息:" + ServletInfo);
		//获取项目的真实路径
		String realPath = servletContext.getRealPath("/");
		System.out.println("获取项目的真实路径:" + realPath);
	}
}

3.ServletContext域对象
ServletContext也可以当做域对象来使用,通过ServletContext中存取数据,可以使得整个应用程序共享某些数据。当然不建议存放过多数据,因为ServletContext中的数据一旦存储进去没有手动移除会将一直保存。

@WebServlet("/SC")
public class ServletCon extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {
		ServletContext servletContext = getServletContext();
		// 设置域对象
		servletContext.setAttribute("name", "张三");
		// 获取域对象
		String name = (String) servletContext.getAttribute("name");
		System.out.println(name);
		// 移除域对象
		servletContext.removeAttribute("name");
	}
}

总结:Servlet三大作用域

1.request域对象
在一次请求中有效。请求转发有效,重定向失败
2.session域对象
在一次会话中有效。请求转发和重定向都有效,session销毁后失效
3.servletContext域对象
在整个应用程序中有效。服务器关闭销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值