応用:四則計算アプリ
- 2010-12-01 Wed 16:49:57
- データのやり取り
足し算だけでは物足りない(?)ので、四則計算をするアプリを作ってみましょう。
足し算だけのアプリと異なるのは、入力部品にラジオボタンを使うこと、そのラジオボタンの種類によって処理が異なる(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')の部分で、計算の種類に応じて計算方法を変える処理をしました。
スポンサーサイト
![]()
タグ :
Comments: