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

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

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

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

170閲覧

コードを書いたが思ったように動かないので、それを動くようにしたい。

threeeverytwo

総合スコア49

Java

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

servlet

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/10/11 05:35

###前提・実現したいこと
JavaのServletのコードを書いたのですが、思ったように動きません。
htmlを実行すると、上図のようになり、
個数を打ち込んで、servletにパラメタを送ると、下図のような画面が表示されるようにしたいです。
実行図

###発生している問題・エラーメッセージ
Eclipsで、エラーは、以下のコードで String BDRDiskNumStr に htmlで入力した値が格納されるはずが null が帰ってきてエラーになってしまいます。

// フォームで入力した文字列を格納 String BDRDiskNumStr = request.getParameter("BD-RDiskNum");                :

###該当のソースコード
Mitumori.html

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>Mitumori</title> 6</head> 7<body> 8<form action = 'Mitumori' method = 'post'> 9 必要な個数を入力してください。 10 <table border = '1'> 11 <tr> 12 <td>品名</td> 13 <td>単価</td> 14 <td>個数</td> 15 </tr> 16 <tr> 17 <td>BD-Rディスク</td> 18 <td>500円</td> 19 <td><input type = 'text' size = '10' name = 'BD-RDiskNum'></td> 20 </tr> 21 <tr> 22 <td>インクカートリッジ</td> 23 <td>2000円</td> 24 <td><input type = 'text' size = '10' name = 'inkcartlidgeNum'></td> 25 </tr> 26 <tr> 27 <td>A4用紙 500枚</td> 28 <td>400円</td> 29 <td><input type = 'text' size = '10' name = 'A4paper500peacesNum'></td> 30 </tr> 31 </table> 32 <input type = 'submit' value = '送信' > 33</form> 34</body> 35</html>

Mitumori.java

Java

1 2import java.io.PrintWriter; 3import java.io.IOException; 4import javax.servlet.ServletException; 5import javax.servlet.annotation.WebServlet; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9 10/** 11 * Servlet implementation class Mitumori 12 */ 13@WebServlet("/Mitumori") 14public class Mitumori extends HttpServlet { 15 private static final long serialVersionUID = 1L; 16 17 /** 18 * @see HttpServlet#HttpServlet() 19 */ 20 public Mitumori() { 21 super(); 22 // TODO Auto-generated constructor stub 23 } 24 25 /** 26 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 27 */ 28 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 // TODO Auto-generated method stub 30 response.sendRedirect("Mitumori.html"); 31 } 32 33 /** 34 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 35 */ 36 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 37 // TODO Auto-generated method stub 38 response.setContentType("text/html; charset=UTF-8"); 39 PrintWriter out = response.getWriter(); 40 out.println("<html><head></head><body>"); 41 request.setCharacterEncoding("UTF-8"); 42 43 // それぞれの商品の単価 44 int BDRDiskCost = 500; 45 int inkcartlidgeCost = 2000; 46 int A4paper500peacesCost = 400; 47 48 // フォームで入力した文字列を格納 49 String BDRDiskNumStr = request.getParameter("BD-RDiskNum"); 50 String inkcartlidgeNumStr = request.getParameter("inkcartlidgeNum"); 51 String A4paper500peacesNumStr = request.getParameter("A4paper500peacesNum"); 52 53 //out.printf("BDR = %s", BDRDiskNumStr); 54 55 // 上記の文字列を数値に変換 56 int BDRDiskNum = Integer.parseInt(BDRDiskNumStr); 57 int inkcartlidgeNum = Integer.parseInt(inkcartlidgeNumStr); 58 int A4paper500peacesNum = Integer.parseInt(A4paper500peacesNumStr); 59 60 // 小計を計算 61 int BDRDiskSum = BDRDiskNum * BDRDiskCost; 62 int inkcartlidgeSum = inkcartlidgeNum * inkcartlidgeCost; 63 int A4paper500peacesSum = A4paper500peacesNum * A4paper500peacesCost; 64 int costSum = BDRDiskSum + inkcartlidgeSum + A4paper500peacesSum; 65 66 // テーブル表示 67 out.println("<table>"); 68 out.println("<tr>"); 69 out.println("<td>品名</td>"); 70 out.println("<td>単価</td>"); 71 out.println("<td>個数</td>"); 72 out.println("<td>小計</td>"); 73 out.println("</tr>"); 74 out.println("<td>BD-Rディスク</td>"); 75 out.printf("<td>%d</td>%n", BDRDiskCost); 76 out.printf("<td>%d</td>%n", BDRDiskNum); 77 out.printf("<td>%d</td>%n", BDRDiskSum); 78 out.println("<tr>"); 79 out.println("<td>インクカートリッジ</td>"); 80 out.printf("<td>%d</td>%n", inkcartlidgeCost); 81 out.printf("<td>%d</td>%n", inkcartlidgeNum); 82 out.printf("<td>%d</td>%n", inkcartlidgeSum); 83 out.println("</tr>"); 84 out.println("<tr>"); 85 out.println("<td>A4用紙 500枚</td>"); 86 out.printf("<td>%d</td>%n", A4paper500peacesCost); 87 out.printf("<td>%d</td>%n", A4paper500peacesNum); 88 out.printf("<td>%d</td>%n", A4paper500peacesSum); 89 out.println("</tr>"); 90 out.println("<tr>"); 91 out.printf("<td colspan='3'>合計</td>%n"); 92 out.printf("<td>%d</td>%n", costSum); 93 out.println("</tr>"); 94 out.println("</table>"); 95 out.println("</body></html>"); 96 out.close(); 97 } 98 99} 100

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

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

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

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

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

guest

回答1

0

ベストアンサー

詳しく読んでいませんが、とりあえず受け取れていない可能性を疑うためにも
request.getParameterMap() でどんな値が受け取れているかを確認してみてはいかがでしょうか。
受け取れていないのであれば、渡している方を確認して、受け取れているならキーなどを確認してみては。

投稿2017/10/11 23:58

YasuhiroMiyake

総合スコア1336

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

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

threeeverytwo

2017/10/12 12:10

返信お時間かかってしまい、申し訳ありません。ご指摘ありがとうございます。上記の通り、試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問