上面bug,源自在做圖片上傳時候用於定義獲取圖片存儲文件。
解決方案:
網上很多回答,都是說因爲Tomcat出了問題,因爲在Tomcat6以後,才支持servlet api 3.0,但是針對於上面bug的回答很片面,當你使用的是Tomcat8,那麼使用的方法應該是request.getSession().getServletContext().getRealPath("/")+"\\upload\\";
ServletContext接口中的方法
Object getAttribute(String name) 返回servlet上下文中具有指定名字的對象,或使用已指定名捆綁一個對象。從Web應用的標準觀點看,這樣的對象是全局對象, 因爲它們可以被同一servlet在另一時刻訪問。或上下文中任意其他servlet訪問。
void setAttribute(String name,Object obj) 設置servlet上下文中具有指定名字的對象。
Enumeration getAttributeNames() 返回保存在servlet上下文中所有屬性名字的枚舉。
ServletContext getContext(String uripath) 返回映射到另一URL的servlet上下文。在同一服務器中URL必須是以“/”開頭的絕對路徑。
String getInitParameter(String name) 返回指定上下文範圍的初始化參數值。此方法與ServletConfig方法名稱不一樣,後者只應用於已編碼的指定servlet。此方法應用於上下文中所有的參數。
Enumeration getInitParameterNames() 返回(可能爲空)指定上下文範圍的初始化參數值名字的枚舉值。
int getMajorVersion() 返回此上下文中支持servlet API級別的最大和最小版本號。
int getMinorVersion()
String getMimeType(String fileName) 返回指定文件名的MIME類型。典型情況是基於文件擴展名,而不是文件本身的內容(它可以不必存在)。如果MIME類型未知,可以返回null。
RequestDispatcher getNameDispatcher(String name) 返回具有指定名字或路徑的servlet或JSP的RequestDispatcher。如果不能創建RequestDispatch,返回null。
如果指定路徑,必須心“/”開頭,並且是相對於servlet上下文的頂部。
RequestDispatcher getNameDispatcher(String path)
String getRealPath(String path) 給定一個URI,返回文件系統中URI對應的絕對路徑。如果不能進行映射,返回null。
URL getResource(String path) 返回相對於servlet上下文或讀取URL的輸入流的指定絕對路徑相對應的URL,如果資源不存在則返回null。
InputStream getResourceAsStream(String path)
String getServerInfo() 返順servlet引擎的名稱和版本號。
void log(String message)
void log(String message,Throwable t) 將一個消息寫入servlet註冊,如果給出Throwable參數,則包含棧軌跡。
void removeAttribute(String name) 從servlet上下文中刪除指定屬性。
getServletContext()和getServletConfig()的意思
getServletConfig() 在servlet初始化時,容器傳遞進來一個ServletConfig對象並保存在servlet實例中,該對象允許訪問兩項內容:初始化參數和ServletContext對象,前者通常由容器在文件中指定,允許在運行時向sevrlet傳遞有關調度信息,比如說getServletConfig().getInitParameter("debug")後者爲servlet提供有關容器的信息。
getServletContext()和getServletConfig()的意思
getServletContext() 一個servlet可以使用getServletContext()方法得到web應用的servletContext 即而使用getServletContext的一些方法來獲得一些值 比如說getServletContext().getRealPath("/")來獲得系統絕對路徑 getServletContext().getResource("WEB-INF/config.xml")來獲得xml文件的內容。