第五天: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共享数据的时候,一定要保证数据使用完毕后及时清除、
一般存储一些单例的对象或者全局的数据
今日学习感受:坚持努力,加油!最后一句话:学习的痛苦是一时的,学不到的痛苦是终生的