- ベストアンサー
Eclipse 3.5 完全攻略: Servletで行き詰まってしまった場合のアドバイス
- 『Eclipse 3.5 完全攻略』で学習中の方がServletで問題にぶつかった場合のアドバイスをまとめました。
- 404エラーが表示されてしまう問題について、原因と対処方法について解説します。
- 『Eclipse 3.5 完全攻略』の環境設定やコードの確認方法など、Servletの実行に必要な情報をまとめました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>よろしければ、設定の間違いそうなところなどを教えて頂ければ幸いです、 servlet-mappingをどれだけ整然とするかで、404エラーの回数は減らせるんじゃないかと思います。 Murachの教科書では、サーブレットクラスの名前をつける時に、 「動詞(の類型)」+「名詞」+"Servlet" というふうに、そのクラスが 「名詞」を「動詞」する、Servletクラス であることを明確化する命名法が用いられています。 例: パッケージ名:email (動詞)AddTo、 (名詞)EmailList → クラス名:email.AddToEmailListServlet サーブレット名は、クラス名からパッケージ名をとります。 → サーブレット名:AddToEmailListServlet url-patternは、サーブレット名から末尾のServletをとり、先頭を小文字にしてアプリケーションルート'/' をつけます。 → url-pattern:/addToEmailList こういう名前の付け方を習慣化しておけば、呼び出す名前でミスする確率は減るんじゃないかと思います。 <!-- the definitions for the servlets --> <servlet> <servlet-name>AddToEmailListServlet</servlet-name> <servlet-class>email.AddToEmailListServlet</servlet-class> </servlet> <!-- the mapping for the servlets --> <servlet-mapping> <servlet-name>AddToEmailListServlet</servlet-name> <url-pattern>/addToEmailList</url-pattern> </servlet-mapping> あと、 >http://localhost:8080/myweb/ の形でもアクセスするには、デフォルトのHTMLファイルをアプリケーションルートの下に配置し、web.xml内で welcome-file として定義する方法が用いられます。 <!-- other configuration settings for the application --> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list>
その他の回答 (2)
- erichgumma
- ベストアンサー率48% (13/27)
>http://localhost:8080/myweb/ >にアクセスしても404エラーです。 http://localhost:8080/myweb/mysrv にアクセスするように書いてないですか? あの本(私は前の版の3.4の方を持ってます)は、ServletやJSPについて分かってから、Eclipseの詳細について知るために読むのならばいいのですが、あの本でServletやJSPについて勉強するのは良くないです。 木の幹について述べずに、枝葉末節のテクニカルなところからいきなり入っていくので、ServletとJSPの全体像が見えてきません。 それから、Tomcatプラグイン使わずに、WTPを使いましょう。 (http://okwave.jp/qa/q5915704.html) Tomcatプラグイン使うと、reload="true" にしても、サーブレット変更時に必ずしも自動リロードしてくれなくて、いちいちツールバーの「Tomcat起動」アイコンをクリックしてTomcatを再起動する事になりますが、あんなバカバカしい作業に時間と労力をかけるべきではありません。 WTPを使えばTomcatを再起動せずとも変更結果が自動的に反映されるので、Tomcatをいちいち再起動して時間を浪費するようなバカバカしい事をしないで済みます。
お礼
ご解答ありがとうございます。 >http://localhost:8080/myweb/mysrv >にアクセスするように書いてないですか? そのとおりです。失礼しました。 WTPの情報ありがとうございました。 WTPではプロジェクトの作成はあっという間にうまくいきました。 今後は、WTP使っていきたいと思います。 ただ、今回は、初心者なりに、 純粋にサーブレットのみを動かして見たいと思って、質問させて頂きました。 よろしければ、設定の間違いそうなところなどを教えて頂ければ幸いです、
- _ranco_
- ベストアンサー率58% (126/214)
Tomcatに対する設定が、mywebになっていないのだと思います。
お礼
アドバイスありがとうございます。 具体的にどの様な設定が間違っていそうですか? 教えて頂ければ、助かります。
お礼
ありがとうございます。 問題も解決しました。 命名規則についても、悩んでいたので、参考になりました。 原因は、読み込むJREや、環境変数を再設定して、web.xmlも書き換えましたが、 そのとき、パソコンを再起動して、新しい環境でプロジェクトを作り直して、 Tomcatを再起動していなかったため、結果として、状況が変化しても、画面に変化が 現れなかったのに気づいていなかったのが一点。 プログラムを作る際、オーバーロードする関数doGet()をEclipseに作ってもらったところ 最初にsuper.doGet(req, resp)をしていて、そのメソッドが許可されていないため、 405エラーがでていたことが一点。 計、二点でした。