0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今回のトラブル&解決までの流れまとめ

Last updated at Posted at 2025-05-15

①環境設定のずれ(ポート番号・URLマッピング)

:writing_hand_tone1: Eclipse のサーバー設定でポートを8081に変えていたため、意図せず localhost:8080 と食い違いが発生。

:writing_hand_tone1: その後 8080 に戻したものの、web.xml のマッピングが重複/競合(/PersonList.do と *.do)していて、リクエストが思ったコントローラに届かなかった。

②フレームワーク(HttpServletMain)と独自サーブレットの混同

:nose_tone1: 共通フレームワークでは HttpServletMain → doAction() をオーバーライドする設計。

:nose_tone2: ところが最初、自力で doGet/doPost を書いて動かそうとしてクラスキャスト例外や “Servletではありません” エラーに。

:nose_tone3: 結果、PersonList クラスに doAction() が二重定義され、ビルドエラーにもなっていた。

③JSP/サーブレットの呼び出しルートが不明確

:fist_tone1: PersonList.jsp を直接ブラウザで開いてしまい、ビーンへの初期化処理が走らず真っ白に。

:fist_tone2: 正しくは <form action="PersonList.do"> 経由でコントローラ→ビーン→JSP の順にリクエストを流す必要があった。

④複数ファイル・複数段階の画面遷移

:raised_hand_tone1: 新規登録・一覧・詳細・確認・完了の5画面をまたいで値渡しをするため、

:raised_hand: form_name/action_cmd/search_info など hidden 項目の管理

:raised_hand_tone2: Bean の serialize/deserialize
が煩雑になり、どのタイミングでどの画面を呼ぶべきか迷走。

なぜ時間がかかったか

:v_tone1: 原因切り分けが後手に:
問題が一気に複数(ポート、マッピング、フレームワーク設計、JSP直叩き)重なり、どこから手をつけるべきか判然としなかった。

フレームワークへの理解不足:

:v_tone2: HttpServletMain を軸にした開発手順/クラス構成のルールを初見で把握するまでに手間がかかった。

画面/URL/クラス名の多重パターン:

:v_tone3: 画面ごとに JSP が複数バージョンあり、その呼び出し先も「.jsp」「.do」「.html」と混在。

次回からの対策 :runner_tone2:

①基本構成図をまず描く

「ブラウザ→サーブレット(.do)→Bean→JSP」の大まかなフローを可視化し、JSP直叩きになっていないか常にチェックする。

②web.xml は一元管理 & コメント整備:runner_tone5:

個別マッピング(/PersonList.do)とワイルドカード(*.do)が両立しない場合はどちらか一方に集約。

「何番ポートで起動中か」「context path」も明示的にコメントに残す。

③フレームワークのテンプレートを踏襲:runner_tone2:

共通の HttpServletMain を使うなら、

public class MyController extends HttpServletMain {
  @Override
  public void doAction() { … }
  @Override
  public void doInit() { … }
}

doGet/doPost を直接オーバーライドしないパターンに慣れる。

④単体テスト的に段階確認:runner_tone5:

まず「.do にアクセス→ログに”controller hit”」と出るか確認。

次に「forward 先の JSP で簡易メッセージ表示」を挟んで順序をトレース。

最終的にビーンを経由して本来画面を出す。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?