学习笔记3:ServletContext对象

ServletContext对象

每一个Web应用都有且仅有一个ServletContext对象,又称Application对象,该对象是与应用程序相关的(与项目相关的)。

在web容器启动时,会为每一个WEB应用程序创建一个对应的ServletContext对象

该对象有两大作用,

第一,作为域对象来共享数据,此时数据在整个应用程序中共享;

第二,该对象中保存了当前应用程序相关信息。例如可以通过 getServerInfo() 方法获取当前服务器信息,getRealPath(String path)获取资源的真实路径等。

ServletContext对象的获取

获取ServletContext对象有很多种方法,比如:

  1. 通过Request对象获取
ServletContext servletContext = req.getServletContext();
  1. 通过session对象获取
ServletContext servletContext1 = req.getSession().getServletContext();
  1. 直接获取(只能在servlet中可以调用)
ServletContext servletContext = getServletContext();
  1. 通过ServletConfig对象获取
ServletContext servletContext3 = getServletConfig().getServletContext();

常用方法

  1. 获取当前服务器版本信息
String serverInfo = req.getServletContext().getServerInfo();
  1. 获取当前项目的真实路径
String realPath = req.getServletContext().getRealPath("/");
System.out.println("真实路径:"+realPath);

ServletContext域对象

ServletContext 也可以当作域对象来使用,通过向 ServletContext 中存取数据,可以使得整个应用程序共享某些数据。

不建议存放过多的数据,因为 ServletContext 中的数据一旦存储进去没有手动移除将会一直保存。

//获取ServletContext对象
ServletContext servletContext = request.getServletContext();
//设置域对象
servletContext.setAttribute("name","zhangsan");
//获取域对象
String name = (String) servletContext.getAttribute("name");
//移除域对象
servletContext.removeAttribute("name");

Servlet三大域对象

  1. request域对象
    在一次请求中有效,请求转发有效,重定向失效

  2. session域对象
    在一次会话中有效,请求转发和重定向都有效,session销毁后失效

  3. servletContext域对象
    在整个应用程序中有效,服务器关闭后失效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值