JavaWeb |
您所在的位置:网站首页 › 小孩发热35度到36度正常吗 › JavaWeb |
什么是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 |