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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

Q&A

0回答

1078閲覧

jspからサーブレットに推移できません。

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

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

0グッド

0クリップ

投稿2021/10/27 08:51

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
独学でJavaを勉強して一か月ほどです。

ログイン機能を実装しようとしていますが、jspからサーブレットに推移できません。
login.jspを実行すると実行するとIDとパスワードを入力する画面は出てきますが、そこからいざIDとパスワードを入力すると以下のエラーメッセージが表示されます。

login.jspを実行すると実行するとIDとパスワードを入力する画面に移動し、そこからMySQLで登録したデータベースと照合し、次の処理に進むといった流れにしたいです。

Eclipse Version: 2019-12 (4.14.0)
Tomcat 9を使用しています。

どなたかご教授いただければ幸いです。

発生している問題・エラーメッセージ

HTTPステータス 404 – 見つかりません。 タイプ ステータスレポート メッセージ /schoo/WEB-sample13_14/LoginServletShopping 説明 オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。 Apache Tomcat/9.0.30

該当のソースコード

<%@ page language="java" contentType="text/html; charset=UTF-8" %> <jsp:useBean id="user_db" scope="session" class="websample13_14.LoginUserBean" /> <%-- Java入門 ログイン画面 --%> <!DOCTYPE html> <html> <head> <title>Java入門</title> <link href="/schoo/WEB-sample13_14/css/shopping.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="login_pane"> <h1>ようこそショッピング風サイトへ!</h1> <p>ログインIDとパスワードを入力して下さい</p> <form action="../LoginServletShopping" method="post"> <table class="table_form"> <tbody> <tr> <%-- ログイン済みの場合はIDを表示 --%> <th>ログインID</th> <td><input type="text" name="id" value="<%=user_db.getId()%>"/></td> </tr> <tr> <th>パスワード</th> <td><input type="password" name="pass"/></td> </tr> </tbody> </table> <input class="common_button" type="submit" name="submit" value="ログイン"/> <%-- ログイン済みの場合はログアウトボタンを表示 --%> <% if("login".equals(session.getAttribute("login_db"))) { %> <input class="common_button" type="submit" name="submit" value="ログアウト"/> <% } %> </form> </div> </body> </html> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <jsp:useBean id="user_db" scope="session" class="websample13_14.LoginUserBean" /> <%-- Java入門 ログイン画面 --%> <!DOCTYPE html> <html> <head> <title>Java入門</title> <link href="/schoo/WEB-sample13_14/css/shopping.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="login_pane"> <h1>ようこそショッピング風サイトへ!</h1> <p>ログインIDとパスワードを入力して下さい</p> <form action="../LoginServletShopping" method="post"> <table class="table_form"> <tbody> <tr> <%-- ログイン済みの場合はIDを表示 --%> <th>ログインID</th> <td><input type="text" name="id" value="<%=user_db.getId()%>"/></td> </tr> <tr> <th>パスワード</th> <td><input type="password" name="pass"/></td> </tr> </tbody> </table> <input class="common_button" type="submit" name="submit" value="ログイン"/> <%-- ログイン済みの場合はログアウトボタンを表示 --%> <% if("login".equals(session.getAttribute("login_db"))) { %> <input class="common_button" type="submit" name="submit" value="ログアウト"/> <% } %> </form> </div> </body> </html> package websample13_14; import java.sql.ResultSet; import java.sql.SQLException; /** * Java入門 ログイン処理クラス.<br/> * Loginクラスを親にしています */ public class LoginDB extends Login { @Override public LoginUserBean getUserData(String id, String pass) { LoginUserBean bean = null; LoginDao dao = null; ResultSet rs = null; try { // DAOクラスをインスタンス化 dao = new LoginDao(); // 画面で入力されたIDとパスワードを基にDB検索を実行 rs = dao.selectUser(id, pass); while(rs.next()) { // 検索結果が存在する場合はbeanに値をセット(結果が1件しか返らないことを想定) bean = new LoginUserBean(); // ID(IDは引数のものをセット) bean.setId(id); // 名前 bean.setName(rs.getString("name")); // 年齢 bean.setAge(rs.getInt("age")); } } catch (SQLException e) { e.printStackTrace(); } finally { // 処理終了時に各接続を解除 dao.close(); } return bean; } } package websample13_14; import java.sql.ResultSet; import java.sql.SQLException; /** * Java入門 ログイン処理クラス.<br/> * Loginクラスを親にしています */ public class LoginDB extends Login { @Override public LoginUserBean getUserData(String id, String pass) { LoginUserBean bean = null; LoginDao dao = null; ResultSet rs = null; try { // DAOクラスをインスタンス化 dao = new LoginDao(); // 画面で入力されたIDとパスワードを基にDB検索を実行 rs = dao.selectUser(id, pass); while(rs.next()) { // 検索結果が存在する場合はbeanに値をセット(結果が1件しか返らないことを想定) bean = new LoginUserBean(); // ID(IDは引数のものをセット) bean.setId(id); // 名前 bean.setName(rs.getString("name")); // 年齢 bean.setAge(rs.getInt("age")); } } catch (SQLException e) { e.printStackTrace(); } finally { // 処理終了時に各接続を解除 dao.close(); } return bean; } }

試したこと

他の方の質問を参考に
form actionのパスの変更
フォルダ配置の変更

イメージ説明

補足情報(FW/ツールのバージョンなど)

フォルダの配置は以下の添付画像の通りでございます。
jsp
Servlet
DB処理クラス
Daoを掲載しております。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問