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

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

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

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Tomcat

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

Q&A

解決済

1回答

5140閲覧

JavaサーブレットからJSPへ文字列を渡し表示させたい。

Martin

総合スコア4

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Tomcat

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

0グッド

0クリップ

投稿2020/11/09 12:39

編集2020/11/09 12:55

主な流れとしては、「新規会員登録画面」→「入力された情報をJavaサーブレットへ渡す」→「JavaサーブレットからJSPへ文字列を渡し、最終確認画面に文字列を表示」と考えています。

現状、最終確認画面の表示まではできていますが、文字列を表示することが出来ません。
過去に、JavaサーブレットからJSPファイルへは文字列及び値の引き渡しは出来ないのではないか?と助言をいただいたこともあり、以下の方法をお勧めされました。
「それぞれの入力項目(名前だったら名前クラス)をクラスごとに分割しインスタンス化を行う。その後、JSPファイルへと値を渡す」

実際に試してみましたがなかなかうまくいきません。(なので、クラスを作成する前の段階に戻し何とかできないか試行錯誤中)

その為、ソースコードにおかしな箇所や不足している事などを教えていただきたいです。

以下に試したこと、実行環境、ソースコード(ファイルごと)、結果のキャプチャを載せますので、ご助言をどうぞよろしくお願いいたします。

試したこと
1:サーブレットのファイル(form1.java): setAttributeでjspファイル(Result.jsp)に送る文字列をセット。
2:サーブレットにて、それぞれの入力項目ごとのクラスを作成し、インスタンス化してjspファイル(Result.jsp)へ送信。

実行環境
Tomcat v8.5サーバー

ソースコード
①サーブレット

form1.java

1package Form1; 2 3import java.io.IOException; 4 5import javax.servlet.RequestDispatcher; 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12/** 13 * Servlet implementation class form1 14 */ 15@WebServlet("/form1") 16public class form1 extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 /** 20 * @see HttpServlet#HttpServlet() 21 */ 22 public form1() { 23 super(); 24 // TODO Auto-generated constructor stub 25 } 26 27 /** 28 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 29 */ 30 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 31 // TODO Auto-generated method stub 32 System.out.println("Test1"); 33 String view = "/WEB-INF/view/NewForm.jsp"; 34 RequestDispatcher dispatcher = request.getRequestDispatcher(view); 35 36 dispatcher.forward(request, response); 37 38 } 39 40 /** 41 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 42 */ 43 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 44 // TODO Auto-generated method stub 45 System.out.println("Test2"); 46 String value = request.getParameter("name"); 47 System.out.println(value); 48 String value1 = request.getParameter("Adress"); 49 System.out.println(value1); 50 String value2 = request.getParameter("callphone"); 51 System.out.println(value2); 52 String value3 = request.getParameter("nickname"); 53 System.out.println(value3); 54 String value4 = request.getParameter("password"); 55 System.out.println(value4); 56 57 request.setAttribute(value, "name"); 58 request.setAttribute(value1, "Adress"); 59 request.setAttribute(value2, "callphone"); 60 request.setAttribute(value3, "nickname"); 61 request.setAttribute(value4, "password"); 62 63 String view1 = "/WEB-INF/view/Result.jsp"; 64 RequestDispatcher dispatcher1 = request.getRequestDispatcher(view1); 65 66 dispatcher1.forward(request, response); 67 68 //doGet(request, response); 69 } 70 71} 72

②入力フォーム画面のjspファイル

NewForm.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <html> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 6 <title>sign up</title> 7 <script type ="text/javascript"> 8 function exec(){ 9 document.getElementById("fm").submit(); 10 } 11 </script> 12 </head> 13 <body> 14 <div> 15 New Person Form 16 <br><br> 17 [New Action]<br><br> 18 <h1>Contents</h1> 19 <form id="fm" action="form1" method="Post"> 20 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 21 <tr><td> 22 <table border="0" cellspacing="1" cellpadding="4"> 23 <tr> 24 <td align="center" bgcolor="#C0C0C0">NAME</td> 25 <td align="left" bgcolor="#E6E1FF"> 26 <input type="text" name="name" size=40></td> 27 </tr> 28 <tr> 29 <td align="center" bgcolor="#C0C0C0">Street address</td> 30 <td align="left" bgcolor="#FFFFFF"> 31 <input type="text" name="Adress" size=60></td> 32 </tr> 33 <tr> 34 <td align="center" bgcolor="#C0C0C0">Phone Number</td> 35 <td align="left" bgcolor="#E6E1FF"> 36 <input type="text" name="callphone" size=70></td> 37 </tr> 38 <tr> 39 <td align="center" bgcolor="#C0C0C0">Nickname</td> 40 <td align="left" bgcolor="#FFFFFF"> 41 <input type="text" name="nickname" size=16 value=""> 42 <font size=2>(Half-width alphanumeric)</font> 43 </td> 44 </tr> 45 <tr> 46 <td align="center" bgcolor="#C0C0C0">Password</td> 47 <td align="left" bgcolor="#E6E1FF"> 48 <input type="password" name="password" size=16> 49 <font size=2>(Half-width alphanumeric)</font> 50 </td> 51 </tr> 52 </table> 53 </td></tr> 54 </table> 55 <br> 56 <button type = "submit">Registration</button> 57 </form> 58 </div> 59 </body> 60 </html>

③最終確認画面のjspファイル

Result.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 7<title>Final Confirm</title> 8 <script type ="text/javascript"> </script> 9</head> 10<body> 11 <br><br> 12 Final Confirm Person Diteil<br><br> 13 <h1>Contents</h1> 14 <form method="Post" action="form1"> 15 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 16 <tr><td> 17 <table border="0" cellspacing="1" cellpadding="4"> 18 <tr> 19 <% 20 //リクエストスコープからのデータの取得(name) 21 String value = (String)request.getAttribute("value"); 22 %> 23 <% 24 //リクエストスコープからのデータの取得(Adress) 25 String value1 = (String)request.getAttribute("value1"); 26 %> 27 <% 28 //リクエストスコープからのデータの取得(callphone) 29 String value2 = (String)request.getAttribute("value2"); 30 %> 31 <% 32 //リクエストスコープからのデータの取得(nickname) 33 String value3 = (String)request.getAttribute("value3"); 34 %> 35 <% 36 //リクエストスコープからのデータの取得(password) 37 String value4 = (String)request.getAttribute("value4"); 38 %> 39</form> 40</body> 41</html>

入力フォーム
イメージ説明

最終確認画面(jspファイルに直接書き込んだタイトルなどは表示できています)
イメージ説明

追加

Result.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 7<title>Final Confirm</title> 8 <script type ="text/javascript"> </script> 9</head> 10<body> 11 <br><br> 12 Final Confirm Person Diteil<br><br> 13 <h1>Contents</h1> 14 <form method="Post" action="form1"> 15 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 16 <tr><td> 17 <table border="0" cellspacing="1" cellpadding="4"> 18 <tr> 19 name:<%=request.getParameter("name") %><br> 20 Adress:<%=request.getParameter("Adress") %><br> 21 callphone:<%=request.getParameter("callphone") %><br> 22 nickname:<%=request.getParameter("nickname") %><br> 23 password:<%=request.getParameter("password") %><br> 24</form> 25</body> 26</html>

Resuly.jspを編集した結果以下の画面になり、真っ黒になってしまいました。
イメージ説明

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

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

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

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

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

guest

回答1

0

自己解決

すみません。解決しました。

Result.jspの入力フォームを編集し画面が出力されるようになりました。以下にコードを載せます。

Result.jsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> 7<title>Final Confirm</title> 8 <script type ="text/javascript"> </script> 9</head> 10<body> 11 <br><br> 12 Final Confirm Person Diteil<br><br> 13 <h1>Contents</h1> 14 <form method="Post" action="form1"> 15 <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000000"> 16 <tr><td> 17 <table border="0" cellspacing="1" cellpadding="4"> 18 <tr> 19 <td align="center" bgcolor="#C0C0C0">NAME</td> 20 <td align="left" bgcolor="#E6E1FF"> 21 name:<%=request.getParameter("name") %><br> 22 </tr> 23 <tr> 24 <td align="center" bgcolor="#C0C0C0">SREET ADRESS</td> 25 <td align="left" bgcolor="#E6E1FF"> 26 Adress:<%=request.getParameter("Adress") %><br> 27 </tr> 28 <tr> 29 <td align="center" bgcolor="#C0C0C0">PHONE NUMBER</td> 30 <td align="left" bgcolor="#E6E1FF"> 31 callphone:<%=request.getParameter("callphone") %><br> 32 </tr> 33 <tr> 34 <td align="center" bgcolor="#C0C0C0">NICKNAME</td> 35 <td align="left" bgcolor="#E6E1FF"> 36 nickname:<%=request.getParameter("nickname") %><br> 37 </tr> 38 <tr> 39 <td align="center" bgcolor="#C0C0C0">PASS</td> 40 <td align="left" bgcolor="#E6E1FF"> 41 password:<%=request.getParameter("password") %><br> 42 </tr> 43</form> 44</body> 45</html>

投稿2020/11/09 13:01

Martin

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問