fc2ブログ

応用:四則計算アプリ





足し算だけでは物足りない(?)ので、四則計算をするアプリを作ってみましょう。

足し算だけのアプリと異なるのは、入力部品にラジオボタンを使うこと、そのラジオボタンの種類によって処理が異なる(if文を使います)ということです。

ファイルの作成です。「form_entry」パッケージの中に「Culc.java」、「form_entry」フォルダの中に「Culc.jsp」を作成します。


web.xmlの設定



	<servlet>
<servlet-name>Culc</servlet-name>
<servlet-class>form_entry.Culc</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Culc</servlet-name>
<url-pattern>/Culc</url-pattern>
</servlet-mapping>

を「<web-app> ~ </web-app>」の間に埋め込みます。


JSPファイルの記述



<%@page contentType="text/html; charset=Windows-31J" %>

<html><body>

<h2>四則計算</h2>

<form action="../Culc">

<p><input type="text" name="text1" size="5"><br>

<input type="radio" name="radio" value="+">+
<input type="radio" name="radio" value="-">-
<input type="radio" name="radio" value="*">×
<input type="radio" name="radio" value="/">÷ <br>

<input type="text" name="text2" size="5">

<p><input type="submit" value="計算">

</form>

</body></html>


これも特に問題ないでしょう。

サーブレットの記述



package form_entry;

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 Culc extends HttpServlet{

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{

common(request,response);
}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{

common(request,response);
}

private void common(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{

String num1str=request.getParameter("text1"); //(1)
int num1=Integer.parseInt(num1str);

String radio=request.getParameter("radio");

String num2str=request.getParameter("text2");
int num2=Integer.parseInt(num2str); //(1')

int ans=0;

response.setContentType("text/plain;charset=Windows-31J");
PrintWriter out=response.getWriter();
out.println("計算結果");

if(radio.equals("+")){ //(2)
ans=num1+num2;
out.println(num1+"+"+num2+"="+ans);
}
else if(radio.equals("-")){
ans=num1-num2;
out.println(num1+"-"+num2+"="+ans);
}
else if(radio.equals("*")){
ans=num1*num2;
out.println(num1+"×"+num2+"="+ans);
}
else if(radio.equals("/")){
ans=num1/num2;
out.println(num1+"÷"+num2+"="+ans);
} //(2')
}
}


足し算アプリ同様、doGet()、doPost()、common()のメソッド3本立てです。四則演算のためラジオボタンを4つ使ったのでその分複雑になりました。

(1)~(1')の部分が入力パラメータを受け取るソースです。ラジオボタンは4つありますが、ソースは1行で済みます。

(2)~(2')の部分で、計算の種類に応じて計算方法を変える処理をしました。
スポンサーサイト



タグ :

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://servletmania.blog137.fc2.com/tb.php/19-808ae067
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
QRコード
QR