- - PR -
Tomcat3.2.4での.jsp以外の拡張子の取扱
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2002-03-28 10:17
始めまして、ayumと申します。
現在Tomcat3.2.4を使用してサーブレットを作成しているのですが、 サーブレットから.jsp以外の拡張子のファイルへフォワードしようとすると File Not Foundとエラーメッセージが返ってきます。 (.txrや.xls等の拡張子で上記の現象が発生) 試しに同じファイルの拡張子を.jspに変更してみると とりあえずうまくいくのですが、 できることならファイルの拡張子は変えずにアクセスしたいのです。 Tomcatで.jsp以外の拡張子を扱う方法というのは存在しないのでしょうか? フォワード部分のコードは以下の通りです。 private void forward( HttpServletRequest req, HttpServletResponse res, String uri ) throws ServletException, IOException { if ( uri != null ) { RequestDispatcher disp = sc.getRequestDispatcher( res.encodeURL( uri ) ); if ( disp != null ) { disp.forward( req, res ); return; } } res.sendError( 404, "Not Found" ); } _________________ 【One step closer to you】Ayumu Kobayashi ayum@na.sakura.ne.jp | ||||
|
投稿日時: 2002-03-28 11:31
リダイレクトを使えばいいと思います。
動きが全く違うので気をつけてください。 リダイレクト:サーブレットからブラウザに対して指定のページを開くように要求します。 フォワード:サーブレットからJSPやサーブレットをサーバー内で呼び出します(いわゆるチェーン) | ||||
|
投稿日時: 2002-03-28 14:18
ご指摘の通りHttpServletResponseのsendRedirect(String)を使うことで
上記の問題を解決でしました。 どうもありがとうございました。 _________________ 【One step closer to you】Ayumu Kobayashi ayum@na.sakura.ne.jp | ||||
|
投稿日時: 2002-03-29 16:32
もし、ユーザー認証をサーブレットで管理しているならば、
リダイレクト処理は適当ではありません。 認証を得なくても、ブラウザにアドレス直打ちで通ってしまいます。 確かリダイレクトだとブラウザにアドレスが出ると思いますが・・・。 セキュリティの観点から良くないことは明白です。 違う方法があると思いますが、この頃エンプラ開発してないので・・・・(T_T) | ||||
|
投稿日時: 2002-03-29 20:53
RequestDispatcher のフォワード処理は、クライアント側と一切干渉せずに
コンテナ内でServlet/JSP間通信を行う目的で定義された機能です。 Servlet/JSP以外のコンテンツに対して、この機能を用いるべきではありません。 | ||||
|
投稿日時: 2002-04-01 12:06
>もし、ユーザー認証をサーブレットで管理しているならば、
>リダイレクト処理は適当ではありません。 >認証を得なくても、ブラウザにアドレス直打ちで通ってしまいます。 この問題に関しては別処理で管理をしているので大丈夫です。 さすがにアドレス直打ちで見れたらまずいので、そこは配慮済みです。 そして、別の問題になってしまうのですが、 HttpServletResponseのリダイレクト、あるいはRequestDispatcherのフォワード、 どちらにしても日本語URLが入ってくるとファイルを見つけてくれないのです。 ex) http://example/test/日本語.txt この問題をどうにかして解決する方法はあるのでしょうか? _________________ 【One step closer to you】Ayumu Kobayashi ayum@na.sakura.ne.jp | ||||
|
投稿日時: 2002-04-01 13:27
ServletOutputStream を使えばいいかも・・・・ ただMIMEタイプを何にすればいいかわかりません。 | ||||
|
投稿日時: 2002-04-01 17:53
現状でURLに生の日本語が入るようなものって正当でしたっけ?
だめな気がしなくもないですが。 それは置いておいて、 java.net.URLEncoderでencodeしてからredirectとかではだめでしょうかね。 (試してないのでなんとも言えませんが) | ||||
