- - PR -
サーブレットの中からそのサーブレット自身(classファイル)のパスを知りたい
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-01-09 14:52
お世話になってます。
今、サーブレットで処理した内容をテキストファイルに出力するサーブレットを作っている のですが、FileOutputStreamにパスを指定せず(ファイル名のみ)にファイル書き込みする とそのサーブレットのクラスのある \WEB-INF\class\ ではなく、 Apache Group\Tomcat4.1\bin\ に保存されてしまいます。 そのサーブレットと同一のパスに保存するにはどうすればいいのでしょうか? または、そのサーブレットの絶対パスを取得するにはどうすればいいのでしょうか? ご存知の方おられましたら、よろしくお願いします。 |
|
投稿日時: 2004-01-09 15:08
ClassLoader#getSystemResourceで取得出来ると思います。
(サーブレットで試した事はないですが・・・) |
|
投稿日時: 2004-01-09 15:09
getServletContext().getRealPath()
でできませんか。 |
|
投稿日時: 2004-01-09 15:32
"/WEB-INF/classes"を着けないと間違ったのが取得できますね。//サンプル import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SampleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { System.out.println(getServletContext().getRealPath("/WEB-INF/classes"+request.getServletPath())); } } |
|
投稿日時: 2004-01-09 15:56
みなさん、ありがとうございました。
takuさんの方法で取れました。 #ちなみに、"/WEB-INF/classes" の後ろの request.getServletPath() は不要のよう #です。物理パスと仮想パスが引っ付いたようになってしまいました。 |
1
