对ServletContext对象的理解

先了解ServletContext对象:

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

        该对象有两大作用,第一、作为域对象用来共享数据,此时数据在整个应用程序中共享;第二、该对象中保存了当前应用程序相关信息。例如可以通过getServerInfo()方法获取当前服务器信息,getRealPath(Stringpath)获取资源的真实路径等。

获取ServletContext对象的方式以及常用方法:

      下面咱们看代码

package com;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 获取ServletContext对象
 * 1.通过request对象获取
 * 2.通过session对象获取
 * 3.通过ServletConfig对象获取
 * 4.直接获取
 *
 *  常用方法
 *      1.获取当前服务器的版本信息
 *              request.getServletContext().getServerInfo();
 *      2.获取项目的真实路径
 *              request.getServletContext().getRealPath("/");
 */
@WebServlet("/s01")
public class Servlet01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.通过request对象获取
        ServletContext servletContext1 = request.getServletContext();
        //2.通过session对象获取
        ServletContext servletContext2 = request.getSession().getServletContext();
        //3.通过ServletConfig对象获取
        ServletContext servletContext3 = getServletConfig().getServletContext();
        //4.直接获取
        ServletContext servletContext4 = getServletContext();

        //常用方法
        //1.获取当前服务器的版本信息
        String serverInfo = request.getServletContext().getServerInfo();
        System.out.println("获取当前服务器的版本信息:"+serverInfo);
        //2.获取项目的真实路径
        String realPath = request.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域对象

                在整个应用程序中有效。服务器关闭后失效。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值