ServletContext对象详解

ServletContext是每个Web应用全局共享的对象,用于在应用内部共享数据和获取服务器及应用信息。它可以被通过request、session或ServletConfig对象获取。常用方法包括获取服务器版本和服务端资源的实际路径。注意,作为域对象使用时,应谨慎避免过度占用内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ServletContext对象简介

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

2.ServletContext的作用

该对象有两大作用:

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

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

3.ServletContext对象

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

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

3.通过ServletConfig对象获取
ServletContext servletContext3=getServletConfig().getServletContext();

4.直接获取只能在Servlet中调用
ServletContext servletContext4=getServletContext();

4.ServletContext的常用方法

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

package com.session.servlet;

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

import java.io.IOException;

/**
 * 获取ServletContext对象,也叫Application对象
 */
@WebServlet("/sc01")
public class ServletContext01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //通过request对象获取
        ServletContext servletContext1=request.getServletContext();

        //通过session对象获取
        ServletContext servletContext2=request.getSession().getServletContext();

        //通过ServletConfig对象获取
        ServletContext servletContext3=getServletConfig().getServletContext();

        //直接获取只能在Servlet中调用
        ServletContext servletContext4=getServletContext();

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

5.ServletContext域对象

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

 

ServletContext域对象不要随便使用,如果不删除会一直消耗内存。域范围越大所需的内存就越多。尽可能选择小的域对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外太空的莫扎特

在校生穷逼一个,呜呜呜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值