第五天:ServeltContext
1. ServeltContext概述
ServletContext (域对象(可以共享数据)): 代表的是当前Servlet(当前项目)运行的上下文信息(环境信息)
例子:
package com.swlz.servletcontext; 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("/servletContextDemo1") public class ServletContextDemo1 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); //获取ServletContext的两种方式 servlet上下文(当前Servlet(项目)运行的上下文(环境)信息)(当前这件事情所处的环境) 事情发生的背景来龙去脉 在不同的环境下有不同的意思 ServletContext servletContext = getServletContext(); //获取当前项目的虚拟路径 String contextPath = servletContext.getContextPath(); //把contextPath信息下响应到浏览器页面上去展示 response.getWriter().write(contextPath); //得到项目的真实路径 String realPath = servletContext.getRealPath("/");//代表根路径 response.getWriter().write("项目发布在tomcat下在磁盘中的真实路径(绝对路径)"+realPath); // ServletContext servletContext1 = request.getServletContext(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }
- 作为域对象共享数据
域对象:
域对象的作用范围
可以在整个项目的任何位置共享数据
ServletContext对象的生命周期(重点)
创建:项目启动的时候服务器会为每一个项目创建一个ServletContext对象
销毁:服务器关闭的时候销毁ServeltContext
一个项目 ----- 一个ServeltContext
注意细节:
ServeltContext作为域对象存储数据作用范围是整个web项目,所以以后在通过ServletContext共享数据的时候,一定要保证数据使用完毕后及时清除、
一般存储一些单例的对象或者全局的数据
今日学习感受:坚持努力,加油!最后一句话:学习的痛苦是一时的,学不到的痛苦是终生的