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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

590閲覧

Java Servletによるログイン→画面遷移をしたいが404エラーが出てしまう

Nakamu111

総合スコア0

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2023/03/23 11:23

ログインフォームの作成にて、ログインボタン押下後404エラーが出てしまいます。
恐らく、formのaction属性が違うのかと思うのですが、いろいろ試した結果分からなかったので質問させて頂きました。
ログインができるかのみ先に確認したいため色々と未完成なところが多いコードで申し訳ございません。
以下ソースコードになります。

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6</head> 7<body> 8 9 <h1>ログイン</h1> 10 <form action="/UserSearch" method="post"> 11 <input type="text" name="userId" required> 12 <input type="password" name="password" required> 13 <input type="submit" value="ログイン"> 14 </form> 15</body> 16</html>

Servlet.java

1package com.example.demo.servlet; 2 3import java.io.IOException; 4 5import com.example.demo.dao.UserDAO; 6import com.example.demo.entity.UserBeans; 7 8import jakarta.servlet.RequestDispatcher; 9import jakarta.servlet.ServletException; 10import jakarta.servlet.annotation.WebServlet; 11import jakarta.servlet.http.HttpServlet; 12import jakarta.servlet.http.HttpServletRequest; 13import jakarta.servlet.http.HttpServletResponse; 14import jakarta.servlet.http.HttpSession; 15 16@WebServlet("/UserSearch") 17public class UserSearch extends HttpServlet{ 18 19 private static final long serialVersionUID = 1L; 20 21 /** 22 * @see HttpServlet#HttpServlet() 23 */ 24 public UserSearch() { 25 super(); 26 // TODO Auto-generated constructor stub 27 } 28 29 /** 30 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 31 */ 32 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 // TODO Auto-generated method stub 34 doGet(request, response); 35 36 } 37 38 /** 39 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 40 */ 41 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 42 // TODO Auto-generated method stub 43 doGet(request, response); 44 45 String userId = request.getParameter("userId"); 46 String password = request.getParameter("password"); 47 48 // login.jspから受け取ったログインIDとpassをビーンズにセット 49 UserBeans ab = new UserBeans(); 50 ab.setUserId(userId); 51 ab.setPassword(password); 52 53 // アカウントの有無を検索 54 // 検索したアカウント情報を取得 55 UserDAO ad = new UserDAO(); 56 UserBeans returnAb = ad.findUser(ab); 57 58 if(returnAb != null) { 59 // セッションにアカウント情報&ロールを登録 60 HttpSession session = request.getSession(); 61 session.setAttribute("user", returnAb); 62 63 RequestDispatcher rd = request.getRequestDispatcher("admin.html"); 64 rd.forward(request, response); 65 66 } else { 67 RequestDispatcher rd = request.getRequestDispatcher("index.html"); 68 rd.forward(request, response); 69 } 70 } 71 72} 73

就職前の自学のため、不足している情報等あるかとは思いますが何卒ご容赦ください。

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

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

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

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

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

guest

回答1

0

以下の形にすれば404は解決すると思います。

html

1 <form action="コンテキストパス/UserSearch" method="post">

しかし、Servlet内のdoGetメソッドの呼び出し部分を削除かコメントアウトしないと、無限ループになってしまうと思います。

java

1 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 // TODO Auto-generated method stub 3 // doGet(request, response);  

投稿2023/03/24 11:49

popura2073

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問