生活随笔
收集整理的這篇文章主要介紹了
servlet中servletContext的五大作用(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
獲取web的上下文路徑獲取全局的參數
作為域對象使用請求轉發
讀取web項目的資源文件
package day10.about_servletcontext.get_path;
/*** 首先區別:* 一個網站只有一個ServletContext對象* 而每一個Servlet都有一個ServletConfig對象* * 但是我們拿Context對象的話,其實是通過Config對象去* 拿的,因為每一個ServletConfig中都有一個ServletContext* 的成員變量;* * 其次因為ServletConfig是在ServletContext之前創建的;* 因為ServletContext是在啟動的時候創建的* 而ServletConfig對象是在調用init方法之前創建的。 * java中獲取ServletContext的常見方法1.在javax.servlet.Filter中直接獲取 ServletContext context = config.getServletContext(); 2.在HttpServlet中直接獲取 this.getServletContext() 3.在其他方法中,通過HttpRequest獲得 request.getSession().getServletContext(); */
import java.io.IOException;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** 【context對象的作用—1】:獲取web的上下文路徑* getContextPath();* * * @author mzy**/
public class ContextDemo01 extends HttpServlet {private static final long serialVersionUID = -4556050230938613373L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");// 1.1:首先要獲取到ServletContext對象/** 這種方法原則上沒有錯:* 因為加載的順序上是config在context之前* 并且context必須通過config對象來獲取,* 但是java設計者為了簡化我們的代碼,* 在源碼中重新寫了這部分;* * 他將* this.getServletConfig().getServletContext();* 封裝到了源碼的 getServletContext()的方法中了;* 但是我們還是需要記得獲取context對象必須要獲得* config對象;* * 獲得context對象,必須要通過config對象來獲取;* * 以下只是代碼的簡化而已* */// ServletContext context = this.getServletConfig().getServletContext();ServletContext context = this.getServletContext();String path = context.getContextPath();System.out.println(path);/** 以上就是上下文路徑:但是需要注意的是,當我們在eclipse或者myeclipse中修改* 項目名稱的時候,我們修改了之后其實它的上下文路徑是沒有變的;* 比如我們原來項目叫做 myday09,修改為myday10之后,我們run這個項目下的文件* 最后跑出來的時候,可以看見項目名依舊是myday09,所以這個時候的context我們* 需要去tomcat中改文件夾名稱,或者:右鍵項目Properties-->myeclipse-->web* -->context root 修改* * 當然新版本的myeclipse中沒有這種問題,但是老版的myeclipse和eclipse中可能* 存在這種問題需要注意*/// String path = context.getContextPath(); 獲取上下文路徑的好處??// 主要表現在做請求重定向的時候response.sendRedirect("/MyFirstServlet/hello.html");// 作用可以讓這個獲取文件的路徑更加的靈活response.sendRedirect(context.getContextPath() + "/hello.html");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");}}
轉載于:https://www.cnblogs.com/mzywucai/p/11053521.html
總結
以上是生活随笔為你收集整理的servlet中servletContext的五大作用(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。