servletContext 对象的解释
创始人
2024-03-22 01:00:23
0

大家好,今天来分享一下servletContext 作用

关于 servletContext 对象, 他代表是整个web 项目,他可以和servlet 或者程序的容器进行通信

同时也可以管理web项目

当一个web项目当中有很多servlet, 那这些servlet之间需要通信
就要使用到servletContext 对象来负责

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在java文件夹下

package test02;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class FirstServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// super.doPost(req, resp);System.out.println("你好");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//    super.doGet(req, resp);}
}

设置tomcat

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

会自动跳出这个页面

在这里插入图片描述

servletContext 对象

就是一个web容器(像tomcat)在启动的时候,每一个web应用都有一个servletContext 对象,负责管理整个web容器,它也表示当前的web应用

// this.getInitParameter() 初始化参数
//this.getServletConfig() servlet 配置
//this.getServletContext() servlet上下文

这是截图:(以及它具体的摆放位置)

在这里插入图片描述

这几个属性百度上都有

this.getServletContext()
是我们今天的关键

servletContext 对象主要的功能:

一. 数据共享(可以让你在一个servlet当中获取到另一个servlet当中的数据)

这句话可能不太好懂

可以看前面的博客

在这里也可以说一下,单个的servlet程序创建过程

  1. 在idea当中新建一个webapps模板的maven项目(这个不强求,只是为了方便)

  2. 导入相关依赖

  3. 写一个类,例如FirstServlet,让他继承HttpServlet 这个类

  4. 写对应的方法(dopost,doget 这两个)

  5. 在web.xml 文件中进行注册
    在这里插入图片描述

注意看它的位置

我们要在web.xml 里面去进行注册

这是在web.xml 里面写的东西


hellotest02.FirstServlet
hello/hello

完成之后这个web.xml 的文件就不需要动它了

servlet的代码部分也完成了

接下来我们要配置tomcat服务器

idea配置tomcat服务器看我这个就可以了

接下来我们启动tomcat ,让tomcat把我们的servlet程序在浏览器上进行展示

在这里插入图片描述

就是这样

看效果
在这里插入图片描述

到这里,我们一个最简单的servlet 程序 就好了

这就是一个单个的servlet程序的创建过程

然而,在一个项目当中,可以有多个servlet程序(只需要重复上面的操作就可以了)

在这里有一个`注意点

就是一个web.xml 文件当中可以同时注册多个servlet程序

在一个项目当中也不会只有一个servlet程序

我们今天要说的这个servletContext 对象就是用来管理各个servlet程序

在这里插入图片描述

也可以全局(也就是架构的角度上来看),就是这个样子

再说的白一点,你想创建多少个servlet程序 ,就在web.xml 这个文件里面注册多少个就可以了

接下来,我们看一下

package test02;import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class FirstServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// super.doPost(req, resp);ServletContext context=this.getServletContext();    //上下文String username = "帅哥";    //这个赋值为中文context.setAttribute("user",username);    //将赋值放到相应的对象当中//这个我们写的一个 ServletContext实例//在这里做个演示//我们在这个把context   对象放到这个类里面//我们就相当于在这个类里写了数据,FirstServlet这个类是一个servlet程序}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        super.doGet(req, resp);}
}
`

接下来再写一个类(它属于另外一个servlet程序)

在这里插入图片描述

这个类创建好了之后,啥也不用管,先让它继承HttpServlet 这个类

之后写dopost ,doget 这两个方法

package test02;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class SecondServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//   super.doGet(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//     super.doPost(req, resp);}
}

在SecondServlet这个类里获取FirstServlet的context所设置的数据

package test02;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class SecondServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// super.doGet(req, resp);ServletContext context =this.getServletContext();String username ="帅哥";context.setAttribute("username",username);resp.setContentType("text/html");resp.setCharacterEncoding("utf-8");resp.getWriter().print("名字" +username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// super.doPost(req, resp);}
}

在web.xml文件当中对SecondServlet 进行注册

  hello2test02.SecondServlet
hello2/hello2

完整的web.xml的文件内容是这样的


hellotest02.FirstServlethello/02hello2test02.SecondServlet
hello2/hello2

之后启动Tomcat服务器
在这里插入图片描述

在这里插入图片描述

servletContext 对象赋予的数据是在FirstServlet类

然而,servletContext 对象的取值与访问工作被放在了SecondServlet类当中

而*FirstServlet类这个类和SecondServlet  这个类属于两个不同的servlet程序*

(这一条是重点)

这个小案例就是证明,servletContext 对象具有数据共享的特征

好了,有关于servletContext 对象的解释就到这里了,谢谢大家

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...