ServletContext对象

ServletConfig和ServletContext对象 ServletContext 是针对整个web 应用而言的,在web 应用启动时被容器创建,用来存储应用级别的信息,例如应用名称、上下文路径等。ServletContext不像ServletConfig接口在Servlet标签里配置,而是针对于整个应用的配置,也叫全局的初始化参数;ServletContext是javax.servlet包下的一个接口,又称上下文对象,是配置对象也是一个域对象;ServletContext是javax.servlet包下的一个接口,又称上下文对象,是配置对象也是一个域对象; 阅读详情

ServletContext是什么?

在这里插入图片描述
ServletContext对象也就是Servlet上下文对象,它是用来管理我们所有的Servlet的

ServletContext对象的使用

1.共享数据

就是我们可以在一个Servlet中通过ServletContext对象存入数据,再通过另一个Servlet拿到数据

ServletContext servletContext = this.getServletContext();//获得上下文对象
servletContext.setAttribute("username","hhhhhhh");//往对象中设置信息,键值对
servletContext.getAttribute("username");//在对象中拿到数据

2.获得初始化参数

我们在项目的web.xml中设置初始化参数
  <context-param>
    <param-name>url</param-name>
    <param-value>jdbc:mysql//localhost::3306/school</param-value>
  </context-param>
拿到参数
ServletContext servletContext = this.getServletContext();//获得上下文对象
servletContext.getInitParameter("url");

3.请求转发

这里我们注册了两个Servlet程序
<!-- 注册Servlet -->
  <servlet>
    <servlet-name>firstServlet</servlet-name><!--  注册一个Servlet程序名字为XXX  -->
    <servlet-class>com.mrlibo.Servlet.HelloServlet</servlet-class><!--  Servlet程序的路径  -->
  </servlet>
  <servlet>
    <servlet-name>TwoServlet</servlet-name><!--  注册一个Servlet程序名字为XXX  -->
    <servlet-class>com.mrlibo.Servlet.TwoServlet</servlet-class><!--  Servlet程序的路径  -->
  </servlet>

  <servlet-mapping>
    <servlet-name>firstServlet</servlet-name><!--  去找哪一个Servlet  -->
    <url-pattern>/firstServlet</url-pattern><!--  在web服务器上的请求地址  -->
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>TwoServlet</servlet-name><!--  去找哪一个Servlet  -->
    <url-pattern>/TwoServlet</url-pattern><!--  在web服务器上的请求地址  -->
  </servlet-mapping>

这里通过上下文对象转发请求


package com.mrlibo.Servlet;

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

public class TwoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();//获得上下文对象
        servletContext.getRequestDispatcher("/firstServlet").forward(req,resp);
        //forward表示转发,并将请求对象和响应对象都传过去
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
}

4.通过web浏览器拿到资源

我在resources文件夹下创建了一个db.properties文件

username=root
password=123456

这里要注意如果你在java文件夹下创建的话会出现导出不了的问题,解决方法需要在pom.xml中配置resources,参考https://blog.youkuaiyun.com/APCSZDDXM/article/details/122587940?spm=1001.2014.3001.5501

然后我们通过ServletContext对象去获取这个资源流

package com.mrlibo.Servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Properties;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
        Properties properties = new Properties();
        properties.load(is);

        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        PrintWriter pw = resp.getWriter();
        pw.println(properties.getProperty("username"));
        pw.println(properties.getProperty("password"));
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

Axure RP 10表单数据提交制作 本文介绍了如何使用Axure RP 10实现表单数据提交。 阅读详情

相关推荐

Doris副本修复实战:从状态机到手动修复的完整指南

在分布式数据库系统中,多副本机制是实现高可用与数据一致性的核心技术。其原理是通过在不同节点存储数据的多个拷贝,确保部分节点故障时服务仍可继续。这项技术的核心价值在于保障数据可靠性,并支撑在线分析处理(OLAP)等对数据一致性要求高的应用场景。当副本出现损坏、丢失或版本不一致时,系统通常依赖自动修复机制,但在元数据损坏、多副本同时故障等复杂场景下,自动修复可能失效,需要深入理解副本状态机并借助手动工具介入。本文将聚焦Doris数据库,解析Tablet副本状态流转(如BAD、VERSION_ERROR),并详细

weixin_32288959的博客 460

javaWeb基础之Servlet上下文(ServletContext)

一、什么是Servlet上下文? Servlet上下文又叫做:ServletContext。 当WEB服务器启动时,会为每一个WEB应用程序(webapps下的每个目录就是一个应用程序)创建一块共享的存储区域 ServletContext也叫做“公共区域”,也就是同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域。 ServletContext在WEB服务器启动时创建,服务...

weixin_42496678的博客 4457

窥秘Windows 10:SAM密码破解

Windows 10作为广受欢迎的操作系统,拥有一套强大的安全措施来保护用户账号和数据安全。然而,有时候我们需要了解更多关于密码破解的知识,以加强我们的防护措施。本文将深入探讨如何突破Windows 10的SAM密码,以便更好地了解密码安全性并加强系统的保护。

Sgirll的博客 6841

宋利兴_笔记_ServletConfig和ServletContext

ServletConfig和ServletContext Public class GenericServlet implements Servlet,ServletConfig{ Private ServletConfig conf; Public void init(ServletConfig conf){ This.conf=conf; } Public ServletC...

ruilinruirui 186

极化码自适应CA-SCL译码(极化码译码)

我们知道最初极化码提出来是运用SC译码,但短码和中等长度其译码性(误码率)能不如LDPC码码,,为了提升有限长度极化码的译码性能,我们主要从译码器的性能和极化码的纠错性能来考虑。 SCL:在增加复杂度的情况下,大幅度增加极化码纠错性能,在高信噪比下,与最优ML性能相同(L=32) CA-SCL:改善最小汉明距离(最小汉明距离增大),增加其纠错性能。把CRC和极化码极联。 自适应CA-SCL:CA-SCL译码虽然提升几乎没的纠错性能,但是导致复杂度大幅度增加,为了降低其复杂度,让L自适应,从而降低其复杂度

m0_52610504的博客 3294

Arduino、ESP32驱动TEMT6000传感器(光照传感器篇)

TEMT6000是一个三极管类型的光敏传感器,其光照强度和基极的电流成正比。用起来也相当简单,可以简单的连接该传感器的基极到模拟电压输入,通过简单的检测电压值就可以判断当前的光照强度。

不脱发的程序猿 4233

ServletContext类的介绍和使用

什么是ServletContext ServletContext是一个接口,它表示Servlet上下文对象 一个工程或者一个模块只会有一个ServletContext对象实例 ServletContext是一个域对象 什么是域对象? 域对象是可以像Map一样存储数据的对象,叫域对象 这里的域指的是存储数据的操作范围 来介绍一下Map和域对象存取删除数据的方法: Map: 存数据:put() 取数据:get() 删除数据:remove() 域对象: 存数据:setAttribute() 取数据:getAtt

你好牛蛙! 1126

【GameFramework框架内置模块】15、场景(Scene)

场景(Scene)模块,提供场景管理的功能,负责场景的加载、卸载、切换和管理。可以方便地管理不同场景之间的切换以及不同场景之间的信息传递。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1883

ServletContext 对象(上下文对象)

上图,没有在xml写ServletName,此时输出名字是com.mengnan.Hello2Servlet。1.获取web.xml中配置的上下文参数 context-param。ServletContext对象 输出是一串地址。4.获取工程部署后在服务器硬盘上的某个目录的绝对路径。3.获取工程部署后在服务器硬盘上的绝对路径。2.获取当前的工程路径。......

weixin_60934893的博客 501

这款值68亿的游戏,你不实战一下吗?安排!

本文介绍了如何使用Cocos开发传送带像素消除类游戏。游戏包含像素画、传送带、炮台等核心元素,需要先解析图片生成像素数据,再通过关卡编辑器设计关卡机制。炮台会在传送带上环绕运动,发射子弹消除匹配颜色的像素点。文章详细讲解了游戏对象实现方法,包括像素生成、传送带运动轨迹、炮台瞄准算法等,并展示了实战效果。完整源码已集成到亿元Cocos小游戏实战合集中,适合对像素消除游戏开发感兴趣的开发者参考。

lsw_Cs的博客 438

【Claude】API Error 通用错误:错误码含义与标准排查流程 bug报错已解决

Claude API 各类错误码速查与标准排查流程。

博客 8243

ServletContext 获取上下文对象

ServletContext 一个项目只有一个ServletContext 在多个servlet中传递参数在web.xml中写全局变量 1、获取上下文对象package com.zhiyou.servlet.demo02;import java.io.IOException;import javax.servlet.ServletContext; import javax.servlet.Serv

My_blankness的博客 3517

[Dify实战] 合同审阅助手:识别风险条款、生成修改建议-带绑定资源

摘要: Dify合同审阅助手通过AI技术提升合同审阅效率,快速识别风险条款并输出结构化修改建议。方案包括合同输入、关键条款识别、风险评级和报告生成流程,重点关注付款、责任限制等核心条款。采用分层风险分级(高/中/低)和"红线清单"机制,确保审阅标准化。实施建议先建立条款库和模板,通过样本测试优化模型,定期更新规则库。该方案可缩短审阅时间50%以上,提高风险识别准确率,最终实现法务经验的可复用沉淀。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 596

ServletContext对象之二:ServletContext对象的重要作用

上一篇博文介绍了什么是ServletContext对象,这一篇博文将介绍ServletContext对象的三个字重要作用。ServletContext的作用    1.获得web应用全局的初始化参数首先看一个配置文件:web.xml  该文件配置了web应用程序的信息,如:&lt;context-param&gt; &lt;param-name&gt;Driver&lt;/param-nam...

NullPointerException的博客 834

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ServletContext对象详解之一:什么是ServletContext对象

前面几篇博文我们了解了Servlet、servlet对象以及servlet的生命周期,这篇博文将介绍另一非常重要的概念:ServletContext对象。1.什么是ServletContext对象    ServletContext代表一个web应用环境对象,即一个web环境。也就是说ServletContext对象内部封装了该web应用的信息。因此一个web应用只有一个ServletContex...

NullPointerException的博客 5166

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ServletContext 对象

ServletContext 对象获取方式 ServletContext 表示整个web应用的上下文对象,所有用户共享。 通过request对象获取 ServletContext context1 = req.getServletContext(); 通过HttpServlet对象获取 ServletContext context2 = this.getServletContext(); ServletContext常用方法 获取一个文件名对应MIME类型 ServletContext

最自由的笑的博客 179

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HTTP 中 ServletContext 对象

一、获取 ServletContext 对象 ServletContext 对象代表整个 web 应用,可以和程序的容器进行通信,即和服务器通信,用来交互数据,获取ServletContext 对象有两种方法: 1、通过 request 对象获取 request.getServletContext(); 2、通过 HttpServlet 获取 this.getServletContext...

ONESTARの博客 1666

对ServletContext对象的理解

该对象有两大作用,第一、作为域对象用来共享数据,此时数据在整个应用程序中共享;ServletContext也可当做域对象来使用,通过向ServletContext 中存取数据,可以使得整个应用程序共享某些数据。每一个web应用都有且仅有一个ServletContext对象,又称Application对象,从名称中可知,该对象是与应用程序相关的。在WEB容器启动的时候,会为每一个WEB应用程序创建一个对应的ServletContext对象。在整个应用程序中有效。//获取servletcontext对象。

2301_77707071的博客 399

ServletContext对象一些功能

1------------Sercletcontext对象获取 /* Sercletcontext对象获取 1. 通过request对象获取 request.getServletContext(); 2. 通过HttpServlet获取 this.getServletContext(); */ Se...

Rocky balboa 694

ServletContext 对象的学习

文章目录ServletContext 对象的学习1. 概念2. 获取3. 功能 ServletContext 对象的学习 1. 概念 ​ 概念:代表整个web应用,可以和程序的容器(服务器)来通信 2. 获取 通过 request 对象获取 request.getServletContext(); 通过 HTTPServlet 获取 this.getServletContex...

Freedom的博客 277
上一篇: Servlet工作原理
下一篇: response应用
小小代码熊
博客等级 码龄7年 5粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值