第五天: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共享資料的時候,一定要保證資料使用完畢後及時清除、
一般存儲一些單例的對象或者全局的資料
今日學習感受:堅持努力,加油!最後一句話:學習的痛苦是一時的,學不到的痛苦是終生的