
どなたか助けていただけないでしょうか。。。
tomcat、サーブレット、jspを用いて
足し算アプリを作っています。
現在のコードは以下です。
*サーブレット
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class AdditionReceiptServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String strNum1 = request.getParameter("num1"); //入力パラメータの取得
String strNum2 = request.getParameter("num2"); //入力パラメータの取得
String message = null; //エラーメッセージ用変数
int answer = 0; //計算結果用変数
//入力チェック
if (strNum1 == null || strNum2 == null) {
//ダイレクトアクセス時のエラー設定
message = "フォーム画面から入力してください";
}
else if (strNum1.equals("") || strNum2.equals("")) {
//空白の場合のエラー設定
message = "何も入力されていません";
}
else {
try {
int num1 = Integer.parseInt(strNum1);
int num2 = Integer.parseInt(strNum2);
answer = num1 + num2;
}
catch (NumberFormatException e) {
//文字が入力された場合のエラー設定
message = "数字を入力してください";
}
}
//JSPに渡す情報をキーと値で設定
request.setAttribute("answer", String.valueOf(answer));
getServletContext().getRequestDispatcher("/forward.jsp").forward(request, response);
}
}
*jsp
<%@ page language = "java" contentType = "text/html; charset = UTF-8" pageEncoding = "UTF-8"%>
<html>
<head>
<title>同じ画面に表示する</title>
</head>
<body>
1<input type = "text" name = "num1"><br>
2<input type = "text" name = "num2"><br>
<input type = "submit" value = "Plus">
<% String answer = (String)request.getAttribute("answer"); %>
answer:<%= answer %><br>
</body>
</html>
*xml
<servlet>
<servlet-name>AdditionReceiptServletMapping</servlet-name>
<servlet-class>AdditionReceiptServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdditionReceiptServletMapping</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
こちら現在の表示画面が
1(入力ボックス)
2(入力ボックス)
(Plus) answer:null
のようになっているのですが、
・結果を同じ画面に表示する
・結果表示のときに入力値が入力ボックスに入った状態にする
の二つの条件ができていません。
(そもそもplusが押せない)
初心者のため、どこをどう修正したらいいのか分からず、
修正例をご教示いただけないでしょうか?
どうぞよろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
① inputはformタグで囲まないと submitできない
②入力値はinputのvalue属性に埋め込んでサーバから返すように
すれば、ページを越えて保持される
③messageも画面に送るべきでは?
④入力はなくともanswerは適切にセットしよう。nullはまずい。
蛇足だけど、サーブレットのURLはweb.configに書くのは
だいぶ前に廃れたと思う。
今はサーブレットのソースにアノテーション書くのが普通。
No.1
- 回答日時:
<input> を囲む <form> を作る
https://developer.mozilla.org/ja/docs/Web/HTML/E …
<form> の属性を正しく指定する
* action = おそらくは "/add"
* method = "GET" ← doGet で処理するため
変数 message に内容がある場合は answer の代わりに表示させる
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
vba 正規表現について教えてく...
-
pythonでのローカルファイルか...
-
if関数とは?
-
プログラム言語
-
今のプログラミング言語
-
vba クリップボードクリアにつ...
-
itエンジニアに就職希望で未経...
-
Pythonのエラーメッセージをコ...
-
P2P地震速報のEEW APIの仕様書...
-
著作権法について
-
プログラミングについて
-
自作scratch アニメの商用利用
-
Geminiフォーム 画像生成で 人...
-
数学、プログラミング、物理、...
-
Python 3.12.2 か一番最新のパ...
-
MOVEコマンドでサブフォルダー...
-
AIがプログラムする時代のプロ...
-
pythonについて(初心者です)
-
pythonでhtmlファイルの指定文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPからServletへの遷移
-
resin.confの設定でご質問です
-
servlet (resin) について
-
WEB開発をはじめたばかりの初心...
-
eclipse servlet 404対処方法
-
サーブレットインスタンスを割...
-
Tomcat起動時にエラーが発生し...
-
RequestDispatcher.forwardメソ...
-
[Servlet]ページ表示に関して
-
import javax.servlet.*;
-
tomcatのweb.xmlについて
-
サーブレットが起動しない
-
HTTPステータス 404 - /servlet...
-
xmlについて
-
JSPからサーブレットを呼び出す...
-
list<クラス名> とは何でしょう...
-
Eclipseにおけるサーブレット作...
-
javaサーブレット sessionの使い方
-
足し算アプリ
-
HTMLから入力値なしで、servlet...
おすすめ情報