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

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

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

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

Q&A

解決済

1回答

8024閲覧

サーブレットのURL指定の書き方

Tazusa

総合スコア41

Java

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

0グッド

0クリップ

投稿2018/05/28 11:56

前提・実現したいこと

DBに登録されているIDとパスを入力するとログインされ、
「○○さんこんにちは」と表示される簡単なWebアプリケーションを作成しています。
jspファイル、FrontController, Action, DAO, connectionManagerを作成したのですが、
ID、パスを入力すると404のメッセージが出ます。
URLの指定が間違っていると検討をつけているのですが、

(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

HTTPステータス 404 - type ステータスレポート メッセージ 説明 The requested resource is not available. Apache Tomcat/6.0.53

該当のソースコード

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style> body{ text-align:center; } </style> <title>ログイン画面</title> </head> <body> <h1>ログイン</h1> <c:out value="${requestScope.message}"/> <form method="post" action="/Login/login"> <input type="hidden" name="buttonId" value="M01"/> ID:<br><input type="text" name="customerId"/><br><br> PASSWORD:<br><input type="password" name="customerPassword"/><br><br> <input type="submit" value="ログイン"/> </form> <form method="post" action = "/Login/login"> <input type = "hidden" name = "buttonId" value = "M02"/><br> <input type = "submit" name = "buttonId" value = "ゲストとしてログイン"/> </form> </body> </html>

FrontController

package login_servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import login_action.LoginAction; /** * Servlet implementatison class FrontController */ @WebServlet("/login") public class FrontController extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String page = null; request.setCharacterEncoding("UTF-8"); String buttonId = request.getParameter("buttonId"); switch(buttonId) { case "M01": LoginAction action = new LoginAction(); page = action.execute(request); break; } request.getRequestDispatcher(page).forward(request, response); } }

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

Tomcat6

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

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

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

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

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

guest

回答1

0

ベストアンサー

FrontController(Servlet)が @WebServlet("/login") なので、

ログイン画面が、http://127.0.0.1:8080/(アプリケーション名)/ で表示されている場合は、
formタグのactionメソッドのURL は、

html

1<form method="post" action="login">

ではないでしょうか。

投稿2018/05/28 12:49

A-pZ

総合スコア12011

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

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

Tazusa

2018/05/28 13:14

/が必ずいるのかと思いこんでいました。 実行してみると404エラーは出なくなりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問