设为首页 加入收藏

TOP

Servlet p7 ServletContext对象
2023-07-23 13:32:00 】 浏览:11
Tags:Servlet ServletContext 对象

ServletContext对象

每一个 web 应用都有且仅有一个 ServletContext 对象,又称为 Application 对象,从名称中可知,该对象是与应用程序相关的。在WEB 容器启动时,会为每一个 WEB 应用创建一个对应的 ServletContex对象。

该对象有两大作用:

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

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

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

ServletContext对象的获取

获取Servlet Context对象的途径有很多。比如:

  1. 通过request对象获取
    ServletContext servletContext1 = req.getServletContext();

  2. 通过Session对象获取
    ServletContext servletContext2 = req.getSession().getServletContext();

  3. 通过ServletConfig对象获取,在 Servlet 标准中提供了 ServletConfig 方法
    ServletContext servletContext3 = getServletConfig().getServletContext();

  4. 直接获取
    ServletContext servletContext4 = getServletContext();

ServletContext域对象

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

//获取ServletContext对象
ServletContext servletContext = request.getServletContext();

//设置域对象
servletContext.setAttribute("uname", "admin");

//获取指定名称的域对象
String uname = (String) servletContext.getAttribute("uname");

//移除域对象
servletContext.removeAttribute("uname");

Servlet的三大域对象

  1. request域对象

    三个中作用范围最小,在一次请求中有效。请求转发有效,重定向无效。

  2. session域对象

    在一次会话中有效,请求转发和重定向都有效,session销毁后失效。

  3. servletContext域对象

    三个中作用范围最大,在整个应用程序中有效。服务器关闭后失效。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【干货向】我想试试教会你如何修.. 下一篇SSO2.0 20-20230705

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目