応用:足し算アプリ
- 2010-12-01 Wed 15:35:13
- データのやり取り
数値を入れるためのテキストボックスを2つ作って、「計算」ボタンを押したらこの2つの数値の足し算をやってくれるWebアプリケーションを作ってみましょう。
サーブレットのメソッドはdoGet()だけでもいいのですが、せっかくGETとPOSTを習ったので、doGet()、doPost()、共通処理メソッドの3つを記述することにしましょう。
ファイルの作成です。「form_entry」パッケージの中に「Plus.java」、「form_entry」フォルダの中に「Plus.jsp」を作成します。
web.xmlの設定
<servlet>
<servlet-name>Plus</servlet-name>
<servlet-class>form_entry.Plus</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Plus</servlet-name>
<url-pattern>/Plus</url-pattern>
</servlet-mapping>
いつものように、「<web-app> ~ </web-app>」の間に以下のソースを書き加えます。
JSPファイルの記述
<%@page contentType="text/html; charset=Windows-31J" %>
<html><body>
<h3>足し算アプリ</h3>
<form action="../Plus">
<input type="text" size="5" name="num1">
+
<input type="text" size="5" name="num2">
<input type="submit"value="計算">
</body></html>
1つ目のテキストボックスの名前を「num1」、2つ目のテキストボックスの名前を「num2」と設定しました。
サーブレットの記述
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 Plus extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
System.out.println("doGet()メソッド実行");
common(request,response);
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
System.out.println("doPost()メソッド実行");
common(request,response);
}
private void common(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
request.setCharacterEncoding("Windows-31J");
String num1str=request.getParameter("num1"); //(1)
String num2str=request.getParameter("num2");
int num1=Integer.parseInt(num1str); //(2)
int num2=Integer.parseInt(num2str);
int result=num1+num2; //(3)
response.setContentType("text/plain;charset=Windows-31J");
PrintWriter out=response.getWriter();
out.println("計算結果");
out.println(num1+"+"+num2+"="+result);
}
}
長いソースですが、中身はたいしたことはありません。common()メソッドの中身が多少変わっているだけです。
//(1) JSPファイルのnum1、num2に入力された入力パラメータを取得して、String型としています。
//(2) そのString型の文字列を数値に変換しています。便宜上、名前はJSPファイルと対応させてnum1、num2としています。
//(3) num1とnum2を足した答えを整数型のresultとして定義しました。
スポンサーサイト
タグ :
Comments: