当前位置: 首页 > news >正文

ServletContext 对象介绍及使用

文章目录

  • 概述
  • 方法介绍

在这里插入图片描述


概述

ServletContext对象当 tomcat 服务器启动的时候,会为每个 web 项目创建一个唯一的 ServletContext 对象,该对象代表当前整个 Web 应用项目。该对象不仅封装了当前 web 应用的所有信息,而且实现了多个 servlet的数据共享. 在 ServletContext 中可以存放共享数据,ServletContext 对象是真正的一个全局对象,凡是web容器中的Servlet都可以访问ServletContext中的对象

​ 在每个项目中可以有多个 Servlet 程序,每个 Servlet 程序都是独立的。当前这个项目的配置信息,就必须使用描述这个项目的 ServletContext 对象获取。

在这里插入图片描述


方法介绍

方法名描述
setAttribute(String name,Object object)向ServletContext中存数据
getAttribute(String name)从ServletContext中取数据
removeAttribute(name)从ServletContext中移除数据
String getRealPath(String path)返回资源文件在服务器文件系统上的真实路径(文件的绝对路径)
getMimeType(fileName)获取服务器中文件类型.txt text/plain .html text/html

ServletContext 对象,tomcat 为每一个web项目单独创建的一个上下文(知上知下贯穿全文)对象。有如下功能:

1.可以在多个servlet之间共享数据

​ 存放:setAttribute()

​ 获得:getAttribute()

​ 删除:removeAttribute()

2.可以获得当前WEB项目中的指定资源(文件)

​ String path = getRealPath( String string);

需求1:如何获取上下文 servletContext 对象。

使用HttpServlet类的父类 GenericServlet 中的方法:getServletContext();

代码如下:

/*获取上下文ServletContext对象:使用HttpServlet类的父类 GenericServlet 中的方法:getServletContext();*/
@WebServlet("/servletContextDemoServlet")
public class ServletContextDemoServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取ServletContext类的对象ServletContext servletContext = getServletContext();}
}

需求2:如何获取服务器中每个文件的路径。例如,在当前项目下的 web 文件夹下放一个1.jpg的图片,获取其真实路径(绝对路径)。

@WebServlet("/servletContextDemoServlet")
public class ServletContextDemoServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ServletContext servletContext = getServletContext();// 如何获取服务器中每个文件的路径。// 例如,在当前项目下的web文件夹下放一个1.jpg的图片,获取其真实路径(绝对路径)。String realPath = servletContext.getRealPath("/1.jpg");/*输出结果:realPath = F:\ideawork\jiuyeban2\out\artifacts\web_war_exploded\1.jpg说明:我们的项目在发布的时候会被打成一个war包,这个war包下的class文件会被放在tomcat下被运行。所以这里获取的真实路径是这个war包下的1.jpg所在的路径。*/System.out.println("realPath = " + realPath);}
}

说明:

获取结果:

realPath = 	F:\ideawork\jiuyeban2\out\artifacts\web_war_exploded\1.jpg
说明:我们的项目在发布的时候会被打成一个war包,这个war包下的class文件会被放在tomcat下被运行。所以这里获取的真实路径是这个war包下的1.jpg所在的路径。

如图:

在这里插入图片描述

需求3:获取当前项目下的1.jpg在服务器中的文件类型。

/*需求3:获取当前项目下的1.jpg在服务器中的文件类型。getMimeType("1.jpg");这里书写获取文件类型的文件名和后缀名即可*/String mimeType = servletContext.getMimeType("1.jpg");System.out.println("mimeType = " + mimeType);//mimeType = image/jpeg

注意:对于方法 getMimeType(“1.jpg”);这里书写获取文件类型的文件名和后缀名即可


总结:

  1. ServletContext 表示上下文对象,代表整个web项目,tomcat一启动就会创建该接口对象,关闭tomcat就会消失

  2. ServletContext 属于对象,多次会话,多次请求限制,三个域对象范围:ServletContext > HttpSession > HttpServletRequest

  3. ServletContext 其他作用:

​ 1)获取文件真实路径: String getRealPath(String path) 参数path如果书写的是相对路径相对的是webapp

​ 2)获取文件的MIME类型: String getMimeType(String file) 参数file只书写文件名+后缀名即可,不会判断是否存在



http://www.mrgr.cn/news/63909.html

相关文章:

  • 详细解释 Vue 中的 h 函数和 render 函数:
  • PyCharm+RobotFramework框架实现UDS自动化测试——(二)RobotFramework环境配置
  • 【蓝桥杯】43709.机器人繁殖
  • 【计算机网络】课程 实验五 静态路由配置
  • 和为0的四元组-蛮力枚举(C语言实现)
  • 电脑硬盘系统迁移及问题处理
  • 【OD-支持在线评测】智能驾驶(200分)
  • 【OD-支持在线评测】字符串拼接(200分)
  • Redis常见面试题(二)
  • 华为路由器交换机如果系统丢失怎么恢复(强烈建议收藏)
  • Halcon 一维卡尺测量找点之模糊集测量法
  • 【C++】1968. 输出ascii码对应的字符
  • 【常用数据结构】开发中常用的数据结构?
  • GB/T 28046.3-2011 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷(2)
  • Web大学生网页作业成品——游戏战地介绍设计与实现(HTML+CSS)(4个页面)
  • HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解
  • openGauss数据库-头歌实验1-1 初识openGauss
  • 【rust实战】rust博客系统4_连接数据库及查询数据
  • 华为 HCIP-Datacom H12-821 题库 (41)
  • nodejs入门教程8:nodejs EventEmitter
  • HTML 基础标签——表单标签<form>
  • 基于java+SpringBoot+Vue的学生网上选课系统设计与实现
  • 1014:与圆相关的计算
  • 使用onnxruntime-web 运行yolov8-nano推理
  • 查缺补漏----关于计组两道题辨析
  • Leetcode 剑指 Offer II 100.三角形最小路径和