ServletContext 对象

通过前面知识点的学习,我们对于请求的处理已经可以说比较灵活了,但是还不够。我们再介绍重要的对象ServletContext 对象

ServletContext 对象

问题:

Request 解决了一次请求内的数据共享问题,session 解决了用户不同请求的数据共享问题,那么不同的用户的数据共享该怎么办呢?

解决:

使用ServletContext 对象

作用:

解决了不同用户的数据共享问题

原理:

ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。

特点:

服务器进行创建

用户共享

一个项目只有一个生命周期:

服务器启动到服务器关闭

作用域:

项目内

怎么使用ServletContext

使用ServletContext:

(1) 如何得到ServletContext对象


this.getServletContext();

(2) 你可以把它想象成一张表,这个和Session非常相似:每一行就是一个属性,如下:

添加属性:setAttribute(String name, Object obj);

得到值:getAttribute(String name),这个方法返回Object

删除属性:removeAttribute(String name)

(3)实现Servlet的请求转发

之前我们学过的请求转发是通过request对象的:


request.getRequestDispatcher("/url").forward(request, response);

这里要说明的是,ServletContext也可以实现请求转发:


this.getServletContext().getRequestDispatcher("/url").forward(request, response);

这两个转发效果是一样的。

(3)利用ServletContext对象读取资源文件(比如properties文件):

文件在WebRoot文件夹下,即我们的Web应用的根目录下。这时候我们可以使用ServletContext来读取该资源文件。

假设我们Web根目录下有一个配置数据库信息的dbinfo.properties文件,里面配置了name和password属性,这时候可以通过ServletContext去读取这个文件:


// 这种方法的默认读取路径就是Web应用的根目录

InputStream stream = this.getServletContext().getResourceAsStream("dbinfo.properties");

// 创建属性对象

Properties properties = new Properties();

properties.load(stream);

String name = properties.getProperty("name");

String password = properties.getProperty("password");

out.println("name="+name+";password="+password);

因为存在ServletContext中的数据会长时间保存在服务器,会占用内存,因此我们建议不要向ServletContext中添加过大的数据!

原文地址:https://www.cnblogs.com/moyulove/p/11025420.html

时间: 2024-08-13 05:11:06

ServletContext 对象的相关文章

在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过

小谈-—ServletConfig对象和servletContext对象

一.servletContext概述 servletContext对象是Servlet三大域对象之一,每个Web应用程序都拥有一个ServletContext对象,该对象是Web应用程序的全局对象或者上下文.Tomcat服务器在启动时,会自动创建一个ServletContext对象,在关闭时,会自动销毁这个ServletContext对象.每个Web应用程序只拥有一个ServletContext对象,ServletContext对象可以在整个Web应用中共享数据资源. 生命周期很长 每个web应

servletContext对象

ServletContext对象 WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. 1)ServletContext对象应用1:多个web组件之间使用它实现数据共享 ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象.由于一个WEB应用中的所有Servlet共享

ServletContext对象(每个工程只有一个此对象)

一]重点方法:        1>存取对象                        void setAttribute(String name, Object object);//将object存入ServletContext对象中,并取名为name(方便取出,与Map类似)                        Object getAttribute(String name);//获取name对应的对象        2>解析web.xml中<context-param&

ServletConfig与ServletContext对象详解

一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet.进而,程序员通过ServletConfig对象就可以

mvc-servlet---ServletConfig与ServletContext对象详解(转载)

ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在 调用servlet的init方法时,将ServletConfig对象传递给

使用ServletContext对象读取资源文件

备注:本文以properties文件为例 一.通过ServletContext读取文件 1.通过ServletContext读取放置在src下的properties文件 package com; import java.io.IOException;import java.io.InputStream;import java.util.Properties; import javax.servlet.ServletException;import javax.servlet.annotation

[Servlet]研究ServletContext对象

ServletContext概述 ServletContext对象是Servlet三大域对象之一,每个Web应用程序都拥有一个ServletContext对象,该对象是Web应用程序的全局对象或者上下文.Tomcat服务器在启动时,会自动创建一个ServletContext对象,在关闭时,会自动销毁这个ServletContext对象.每个Web应用程序只拥有一个ServletContext对象,ServletContext对象可以在整个Web应用中共享数据资源. 下列是ServletConte

ServletContext对象的使用

得到web应用路径 getContextPath();用于请求重定向的资源名称中 1 public class ContextDemo extends HttpServlet { 2 @Override 3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 4 //1.得到ServletContext对象 5 //Servlet

重温Servlet学习笔记--servletContext对象

一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application. ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据