JavaWeb

您所在的位置:网站首页 小孩发热35度到36度正常吗 JavaWeb

JavaWeb

2024-01-23 00:21| 来源: 网络整理| 查看: 265

什么是ServletContext

ServletContext代表是一个web应用的上下文对象(web应用对象),里面封装的都是web应用信息,一个ServletContext对应一个应用。

ServletContext的生命周期

在服务器一启动的时候就会创建,在服务器关闭的时候销毁。

如何获得上下文 通过init方法当中一个参数ServletConfig来获取直接在HttpServlet当中获取: this.getServletContext()

这种方法本质还是通过config来去获取的

获取全局的初始化参数

初始化参数不能再某一个Servlet当中来去配置。在最外层来去配置

name youyuan

获取全局初始化参数:

package org.youyuan.servlet; 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; @WebServlet("/myservlet") public class myServlet extends HttpServlet{ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("servlet"); ServletContext servletContext = this.getServletContext(); System.out.println(servletContext.getInitParameter("name")); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }

控制台打印出: 在这里插入图片描述

获得Web应用中某一个资源的资源的绝对路径,读取文件内容

第一种: 在这里插入图片描述 db.properties:

name = zs age = 23 @WebServlet("/getPropertiesServlet") public class getPropertiesServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext servletContext = this.getServletContext(); /*获取相对路径的输入流对象*/ InputStream resourceAsStream = servletContext.getResourceAsStream("/WEB-INF/classes/db.properties"); Properties properties = new Properties(); properties.load(resourceAsStream); System.out.println("name="+properties.getProperty("name")); System.out.println("age="+properties.getProperty("age")); } }

控制台打印结果: 在这里插入图片描述

第二种:

@WebServlet("/getPropertiesServlet2") public class servlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext servletContext = this.getServletContext(); //获取文件绝对路径 String realPath = servletContext.getRealPath("/WEB-INF/classes/db.properties"); FileInputStream inputStream = new FileInputStream(realPath); Properties properties = new Properties(); properties.load(inputStream); System.out.println("name="+properties.getProperty("name")); System.out.println("age="+properties.getProperty("age")); } }

控制台打印结果: 在这里插入图片描述

ServletContext是一个域对象

什么是域?能够存储数据。

域对象? 能够存取数据数据就的对象。

ServletContext域对象的作用范围? 1.整个web应用。 2.所有的web资源都可以进行存取数据 3.数据是可以共享的。

获取完ServletContext之后向里面写数据 context.setAttribute(String name,Object value);

获取完ServletContext之后,通过name取出存放的数据 context.getAttribute(String name);

获取完ServletContext之后,删除指定名称的值 Context.removeAttribute(String name);

只要是一个域对象上,基本上里面都有这几个方法



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3