いくつかの情報
- Web アプリケーションのコンテキスト ルートにあるファイルは、クライアントが参照できます。これは望ましい機能ではないと思います。
- Web アプリケーションの WEB-INF フォルダーにあるファイルは、Web アプリケーションからアクセスできますが、クライアントから参照することはできません。
推奨される解決策 1
- WEB-INF フォルダーの下のフォルダーにファイルを配置することを計画します。おそらく「Files」という名前です (つまり、「WEB-INF/Files」)。
- 実際のファイル パスを取得するには、ServletContext.getRealPath()を使用します。
- Java IO (BufferedReader、Scanner、その他のもの - 選択) を使用してファイルを読み書きします。
推奨される解決策 2
以下のコメントに基づいています。サーブレットは、既知のホスト上のサーブレット コンテナー (おそらく Tomcat) にインストールされる Web アプリケーションの一部になります。ホスト上にディレクトリを作成します。このディレクトリをパラメーターとしてサーブレットに追加します (おそらくサーブレット構成、プロパティ ファイル、ハードコードされた文字列、またはその他のソリューション)。これが完了すると、サーブレットはファイルの読み取りと書き込みの場所を認識します。その時点で、アプリケーションは問題のファイルを読み書きできます。
このソリューションで getRealPath() を使用する必要はありません。実際のパスはサーブレットへのパラメーターです。
推奨読書リスト
概要 (古いかもしれませんが、それでも十分です) については、Core Servlets Web サイトの「Intermediate Servlets & JSP」および「Advanced Servlets & JSP」チュートリアルを参照してください。
もう 1 つの紹介元はJava EE 5 チュートリアルです。チュートリアル全体は適切ですが、サーブレットの情報については、第 II 部の第 3 章と第 4 章に注目してください。私はJava EE 6 チュートリアルよりもこのチュートリアルを好みますが、それは個人的な好みかもしれません。