teratail header banner
teratail header banner
質問するログイン新規登録
servlet

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

Q&A

1回答

1410閲覧

servletのエラー

qwerty123

総合スコア26

servlet

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

0グッド

0クリップ

投稿2015/06/13 09:34

0

0

サーブレットとhtmlを使って、以下のプログラムを作成しました。

-----Servlet-----

package jp.co.iti.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class Calc
    */
    @WebServlet("/Calc")
    public class Calc extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • Default constructor.
      */
      public Calc1() {
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request,
      HttpServletResponse response)
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse
      response) throws ServletException, IOException {
      // TODO Auto-generated method stub

      request.setCharacterEncoding("utf-8");

      response.setContentType("text/html; charset=UTF-8");

      PrintWriter out = response.getWriter();

      String num1str=request.getParameter("number1"); //入力された整数

      String num2str=request.getParameter("number2"); //入力された整数

      String calc = request.getParameter("calc"); //符号

      int ans = 0;

      //空欄の時
      if(num1str == "" || num2str == ""){
      out.println("<html><body>");
      out.println("NULL");
      out.println("</body></html>");
      }else{
      out.println("<html><body>");

      int num1 = Integer.parseInt(num1str); int num2 = Integer.parseInt(num2str); if(calc.equals("add")){ ans = num1 + num2; out.println(ans); } else if(calc.equals("sub")){ ans = num1 - num2; out.println(ans); } else if(calc.equals("mul")){ ans = num1 * num2; out.println(ans); } else if(calc.equals("div")){ ans = num1 / num2; out.println(ans); } out.println("</body></html>");

      }

    }

}

-----HTML-----

<!DOCTYPE> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Servlet</title> <script language="javascript" type="text/javascript"> <!-- function formCheck(){ // 半角数字以外で入力された場合は送信しない if(document.Form.number1.value.match(/[^0-9]+/) || document.Form.number2.value.match(/[^0-9]+/)){ //alertを表示 window.alert( '半角数字で入力してください' ) return false; //半角数字で入力されている場合は計算 //0で除算されている場合は送信しない }else if(number2.value.equals("0") && calc.value.equals("div")) { window.alert('0で割ることはできません'); return false; //0以外なら送信 }else{ return true; } } // --> </script> </head> <body> <h1>Servlet</h1> <form name="Form" action="Calc" onsubmit="return formCheck()"> <input type="text" name="number1"> <br><br> <input type="text" name="number2"> <br><br> <select name="calc"> <option value="add">足し算</option> <option value="sub">引き算</option> <option value="mul">掛け算</option> <option value="div">割り算</option> </select>

<br><br>

<input type="submit" value="送信"> <input type="reset" value="取消"> </form> </body> </html>

0で除算が行われた場合はエラーを表示(Javascriptを使用)、その時のifの
条件式に問題があると思うのですが、どのように修正したらよいでしょうか。

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

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

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

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

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

guest

回答1

0

JavaScriptにしなくても良さそうですが、こういう感じでどうですか?
JavaScriptにするなら「エラー」のところに直接JavaScriptを書けばOKです。

lang

1else if(calc.equals("div")){ 2 if (num2 == 0) { 3 out.println("エラー:0の除算です"); 4 } 5 else { 6 ans = num1 / num2; 7 out.println(ans); 8 } 9}

投稿2015/06/13 10:39

argius

総合スコア9396

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問