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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

JSP

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

Java

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

servlet

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

Q&A

解決済

1回答

1213閲覧

JSPからServletに情報を渡したい

Yakusugi

総合スコア123

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

JSP

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

Java

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

servlet

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

0グッド

0クリップ

投稿2020/09/29 12:55

編集2020/09/29 13:47

イメージ説明### 前提・実現したいこと
JSP(index.jsp)からLoginSreen.javaへ名前、名字、ID、パスワードを渡したい。
プロジェクト名はjsp_servlet2です。

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

JSPから名前、名字、ID、パスワードをJava側に渡そうとすると、「HTTP Status 404 – Not Found」になってしまいます。

エラーメッセージ HTTP Status 404 – Not Found Type Status Report Message /jsp_servlet2/Login Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists. Apache Tomcat/9.0.6

該当のソースコード

index2.jsp

<%@ page language="java" contentType="text/html;charset=Windows-31J" %> <html> <head> <title></title> </head> <body> <% String headline = "Input your name, ID and password"; %> <%=headline%><br/><br/> <form action="/jsp_servlet2/Login" method="Post"> First Name:<input type="text" name="firstName"> Last name:<input type="text" name="lastName"> ID:<input type="text" name="id"> Password<input type="text" name="password"> <br/><br/> <input type="submit" value="submit"> </form> </body> </html>

LogsinScreen.java

package www.jsp_servlet2; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginScreen extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //variable default settings String name = "guest"; String status = "login failure"; // language code default settings request.setCharacterEncoding("Windows-31J"); //get first name String firstName = request.getParameter("firstName"); //get last name String lastName = request.getParameter("lastName"); //get ID String id = request.getParameter("id"); //get password String password = request.getParameter("password"); //Check ID and Password if(id.equals("yakusugi")&&password.equals("passpass")) { status="Login Success"; name="Yosuke"; } //Display on servlet response.setContentType("text/html; charset=windows-31J"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title></title>"); out.println("</head>"); out.println("<body><br><br>"); out.println("Hello" + " " + firstName); out.println(status + "<br><br>Hello" + " " + name); out.println("</body>"); out.println("</html>"); } }

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>LoginScreen</servlet-name> <servlet-class>www.jsp_servlet2.LoginScreen</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginScreen</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> </web-app>
### 試したこと xmlファイルのservlet-name、servlet-classの値を変えてみたりしました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2020/09/29 13:03 編集

どこにも /jsp_servlet2/ ~ でリクエストを受けるように書かれてないように思います。 プロジェクト名は何ですか?
Yakusugi

2020/09/29 13:09

プロジェクト名はjsp_servlet2です。
m.ts10806

2020/09/29 13:29

質問は編集できます。 追記願います。
m.ts10806

2020/09/29 13:31

ちなみに、web.xmlを編集後、Tomcat再起動しましたか?
Yakusugi

2020/09/29 13:48

質問へ追記しました。 また、web.xmlを編集後、Tomcat再起動は行いました。
Yakusugi

2020/09/29 13:49

「/jsp_servlet2/ ~ でリクエストを受けるように書かれてないように思います。」との事ですが、どの部分で受け取れていないか、ご教示頂くことは可能でしょうか。
guest

回答1

0

ベストアンサー

実装されているコードそのものについては特に問題はないようですので、ファイルの配置を確認しましょう。

xml

1<web-app> 2 <servlet> 3 <servlet-name>LoginScreen</servlet-name> 4 <servlet-class>sample.LoginScreen</servlet-class> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>LoginScreen</servlet-name> 8 <url-pattern>/Login</url-pattern> 9 </servlet-mapping> 10</web-app>

※一部パッケージ名を変更しています
としたときのディレクト構造は以下です。

イメージ説明

なお、サーブレットや設定ファイル(web.xml:デプロイメントディスクリプタ)を編集したときは手動で再起動するか、Tomcatの設定で自動リロードをONにすると、ファイルの変更を検知して数秒で再起動が始まります。

投稿2020/09/29 13:53

A-pZ

総合スコア12011

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

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

Yakusugi

2020/09/29 14:40

ご回答ありがとうございます。 ファイルの配置については、質問の一番上にスクショを貼っているのですが、 頂いたスクショと当方の環境では同じ配置になっているようです。 配置以外で何か原因は考えられますでしょうか。
Yakusugi

2020/09/29 15:29

ありがとうございました。 ファイル名をindex2,jspからindex.jspに変更し、web.xmlの配置も再度見直し、変えたら正常に動きました。
A-pZ

2020/10/01 02:51

d(・ω・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問