天天看點

javaweb複習ServeltContext

第五天: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);
    }
}      
  1. 作為域對象共享資料

域對象:

域對象的作用範圍

可以在整個項目的任何位置共享資料

ServletContext對象的生命周期(重點)

建立:項目啟動的時候伺服器會為每一個項目建立一個ServletContext對象

銷毀:伺服器關閉的時候銷毀ServeltContext

一個項目  -----   一個ServeltContext

注意細節:

ServeltContext作為域對象存儲資料作用範圍是整個web項目,是以以後在通過ServletContext共享資料的時候,一定要保證資料使用完畢後及時清除、

一般存儲一些單例的對象或者全局的資料

今日學習感受:堅持努力,加油!最後一句話:學習的痛苦是一時的,學不到的痛苦是終生的