- PR -

Tomcat:mimeによるerror-pageの振り分けについて

投稿者投稿内容
wantan
会議室デビュー日: 2006/07/03
投稿数: 7
投稿日時: 2006-07-05 11:40
koeさん、加納正和さん、ひろさん、回答ありがとうございます。

引用:

koeさんの書き込み(2006-07-04 20:25)より:
他の方法ですが、Webサーバの設定で解決するというのはどうでしょうか?
業務用途だと、画像などの静的コンテンツはWebサーバに処理させると
思いますが、Apacheと連携させるのであればいい方法がありそうです。



実はApache/Tomcatの連携は行っています。
ただし、mod_jkの設定ですべてのリクエストをTomcatに渡しています(TT
Apacheはバランサとしてのみ機能しているイメージです。

引用:

加納正和さんの書き込み(2006-07-04 21:31)より:
どうせならdoFilter()するとか。
servlet->filterにするだけなので意味はないかもしれない。



確かに設計思想としてはフィルタになるんですかね。
処理速度的にどちらが優れているかはわかりませんが、
時間があれば測定してみたいと思います。

引用:

ひろさんの書き込み (2006-07-05 09:02) より:
Tomcat 4.1を使っていますが、forward していなければ
request.getRequestURL()できちんとリクエストされたURLが取得できています。



Tomcat4.1.31で確認してみたのですが、5.5と同じような結果でした。
web.xml-------------------------------------------------------
<error-page>
<error-code>404</error-code>
<location>/hoge.jsp</location>
</error-page>
---------------------------------------------------------------

上記のような設定で存在しないURI:/not_hoge.jspをリクエストした場合
/hoge.jspで処理されますが、hoge.jsp内でrequest.getRequestURL()すると
/hoge.jspが返されます。
エラーページの遷移が発生した時点でforwardしてるといえばそうなんですが。
ひろ@ya
大ベテラン
会議室デビュー日: 2006/02/23
投稿数: 168
投稿日時: 2006-07-05 19:44
引用:

wantanさんの書き込み (2006-07-05 11:40) より:
実はApache/Tomcatの連携は行っています。
ただし、mod_jkの設定ですべてのリクエストをTomcatに渡しています(TT
Apacheはバランサとしてのみ機能しているイメージです。



コネクタが違うと挙動が違うのかもしれませんね。こちらは単独運用で

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />

を使っています。

なお、Tomcat内部の実装に依存するのでお勧めは出来ませんが、
Tomcat 4.1ではエラーページ内で

request.getAttribute("javax.servlet.error.request_uri")

でURIを取得する事も可能なようです。

# org.apache.catalina.Globals#EXCEPTION_PAGE_ATTR 参照

スキルアップ/キャリアアップ(JOB@IT)