質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

5658閲覧

【Java】Tomcatで404のステータスコードの時の適切な処理について

Sfidante

総合スコア90

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2015/08/07 13:55

編集2015/08/07 13:56

webアプリケーションに関して、
ユーザーが意図しないURLを打ち込んだ時に
404のステータスコードが出力されると思いますが、
その時に、こちらで用意した
error.htmlのようなページに飛ばす処理を行いたいと考えております。

web.xmlでその時の処理をおこなうような記述はいくつか見つけ、
Javaのコードでもそれに該当するような記述がありますが、
どのようにコードを書けば、
適切にステータスコードを取得して、
error.htmlに飛ばせるのかのイメージがつかめません。

なお、web.xmlではなく、
サーブレットで処理をおこないたいです。

とても初歩的な質問なのですが、
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TetsuyaZama

2015/08/07 14:14 編集

>なお、web.xmlではなく、 >サーブレットで処理をおこないたいです。 それは何故でしょうか? 質問の内容を拝見する限り、web.xmlのerror-pageディレクティブに設定する方がはるかに楽なように思えます。
Sfidante

2015/08/07 14:16

手間を考えた時に、 現在、web.xmlを使っていないので サーブレットのほうがいいと考えたからです。 web.xml作成のほうが楽なのでしょうか?
TetsuyaZama

2015/08/07 14:39

はい。サーブレットというのは基本的に、「自分(作成者)が意図したURL」にアクセスされた際の処理を記述するところです。 あえてやるのであれば、 ・すべてのURLに対応するサーブレットを作成する ・URLが意図したものかそうではないかを判断する ・意図したものであれば該当処理に、そうでなければエラーページへ という処理を記述しなければなりません。 そんなことをしなくても良いように、tomcatのweb.xmlはerror-pageというディレクティブを用意したと考えていただいて良いと思います。
guest

回答1

0

ベストアンサー

ステータスコード:404以外に特に判断基準がないのであれば、web.xmlのerror-pageディレクティブに設定するのが最も楽な方法だと思われます。

※ステータスコード以外に、例えば"意図しないURL"の内容によってpageを出し分けたいというのであれば話は別ですが。

以下、tomcat7を前提としてお話ししますが、

・tomcat全体のエラーページを指定したい場合
TOMCATHOME/conf/web.xml
・特定のApp(war)のエラーページを指定したい場合
(warのルート)/WEB-INF/web.xml

のerror-pageディレクティブに表示したいページ(htmlファイル)を指定してみてください。

参考

投稿2015/08/07 14:32

TetsuyaZama

総合スコア216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sfidante

2015/08/07 14:35

ご回答ありがとう御座います。 404以外はサーブレットで処理をしているので、 web.xmlのほうが良さそうですね。 ちなみになのですが、tomcat8も同じ記載でしょうか?
Sfidante

2015/08/07 14:54

わざわざお調べいただきありがとうございます。 おかげさまで、ものの数分で設定できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問