我是java servlet的新手。我正在編寫一個讀取和寫入文本文件的應用程序。但是,我正在使用JSP在Java Servlet上運行此應用程序。當我在eclipse中運行servlet時,它會保持報告文件未找到錯誤。我真的不知道如何糾正文件路徑,以便servlet不會抱怨它。運行在java servlet中讀寫外部文本文件的應用程序
基本上,應用程序和servlet代碼位於相同的src文件夾中,但包裝不同。你能告訴我應該在哪裏放置這些文本文件,以及我應該如何讀寫它們?非常感謝你。
我是java servlet的新手。我正在編寫一個讀取和寫入文本文件的應用程序。但是,我正在使用JSP在Java Servlet上運行此應用程序。當我在eclipse中運行servlet時,它會保持報告文件未找到錯誤。我真的不知道如何糾正文件路徑,以便servlet不會抱怨它。運行在java servlet中讀寫外部文本文件的應用程序
基本上,應用程序和servlet代碼位於相同的src文件夾中,但包裝不同。你能告訴我應該在哪裏放置這些文本文件,以及我應該如何讀寫它們?非常感謝你。
默認目錄是您的項目的目錄。把你的文件放在項目目錄中,對我來說它是「C:\ Documents and Settings \ myusername \ workspace \ projectname」。
你可以將文件放在任何地方,但我建議你把它放在WEB-INF下,這樣它就不能直接訪問。
您可以通過訪問:
getServletContext()方法getRealPath( 「/ WEB-INF /文件名」)。
但是,問題在於應用程序本身不是servlet,而是位於不同的包中。我試圖使用getServletContext,但程序沒有識別它。 – user1319894 2012-08-08 15:06:12
一些信息
建議的解決方案1
Sugested解基於下面的評論2
。該servlet將成爲Web應用程序的一部分,該應用程序已安裝到已知主機上的servlet容器(可能是Tomcat)中。在主機上創建一個目錄。將此目錄作爲參數(可能是servlet配置,也許屬性文件,可能是硬編碼字符串或任何其他解決方案)添加到servlet中。一旦完成,servlet將知道在哪裏讀取和寫入文件。那時,任何應用程序都可以讀取和寫入有問題的文件。
無需在此解決方案中使用getRealPath(),實際路徑是servlet的參數。
推薦的閱讀書目
的介紹(可能是過時了,但還是不錯的),請閱讀「中級Servlet的& JSP」和Core Servlets網站上的「高級Servlet的& JSP」教程。
另一個介紹來源是Java EE 5 Tutorial。整個教程很好,但關注servlet信息的第II部分,第3章和第4章。我更喜歡本教程到Java EE 6 Tutorial,但這可能只是個人偏好。
我試圖使用ServletContext。但是,由於應用程序位於不同的包中,因此無法識別ServletContext。 – user1319894 2012-08-08 14:41:27
該servlet可以訪問ServletContext。該servlet應該調用讀寫器應用程序。該servlet可以獲取文件的真實路徑並將其傳遞給應用程序。 – DwB 2012-08-08 15:05:38
應用程序可以用來訪問這些文本文件嗎?因爲一些文本文件的讀寫真的獨立於servlet? – user1319894 2012-08-08 15:47:52
回答這些問題(文件是對您的servlet必須讀取的文件的引用):1.文件位於何處;在服務器上還是在客戶端桌面上? 2.如何生成文件;從客戶端計算機上傳到服務器,由服務器上的不同應用程序創建,還有其他內容? 3.必須讀取的文件與必須寫入的文件相同還是不同的文件組? – DwB 2012-08-08 14:01:51
我在eclipse中編寫servlet和應用程序。我創建了一個動態Web項目。我將我的所有文本文件放在WebContent文件夾中與我所有的JSP文件一起讀取。 – user1319894 2012-08-08 14:18:05
@DwB對於第二個問題,所有文本文件都是由其他程序預先創建的。它們不是由服務器上的其他應用程序創建的。對於第三個問題,所有必須讀取的文件都是文本文件,而一些輸出文件是文本文件,一些是json文件。 – user1319894 2012-08-08 14:20:16