在Servlet API裡,對ServletContext介面呼叫getRealPath("/")方法就能夠獲取Web專案根目錄的實際物理路徑,所以關鍵是如何獲取這個ServletContext。所以,在Struts 2的一個Action類裡,有兩種思路和方法得到Web專案根目錄的實際物理路徑:
1)可以用ServletActonContext的getServletContext()獲取ServletContext,進而呼叫getRealPath("/"),如下:String realPath=ServletActionContext.getServletContext().getRealPath("/");
2)先獲得request,再透過getSession()方法獲得session,再對session呼叫getServletContext()得到ServletContext,進而呼叫getRealPath("/"),如下:String realPath = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/");顯然,用第一種方法程式碼更簡潔些。
在Servlet API裡,對ServletContext介面呼叫getRealPath("/")方法就能夠獲取Web專案根目錄的實際物理路徑,所以關鍵是如何獲取這個ServletContext。所以,在Struts 2的一個Action類裡,有兩種思路和方法得到Web專案根目錄的實際物理路徑:
1)可以用ServletActonContext的getServletContext()獲取ServletContext,進而呼叫getRealPath("/"),如下:String realPath=ServletActionContext.getServletContext().getRealPath("/");
2)先獲得request,再透過getSession()方法獲得session,再對session呼叫getServletContext()得到ServletContext,進而呼叫getRealPath("/"),如下:String realPath = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/");顯然,用第一種方法程式碼更簡潔些。