2014年02月01日
WEBアプリケーションを作りましょう その7 データ入力とjsp同士の連携
よくよく考えたら、いきなり、DBの連携とかぶっ飛びすぎたような気もしますね。
DBから値を引っ張ったり、DBに値を与えたりするやり方は前回の記事で書きましたが、
では、なんでもデータベースを使わなければいけないのか。ということも、もちろんありません。
例えば、データ送信用のJSP、データを受け取って結果を返すJSP。
この二つでやり取りをすることも可能です。
その代り、HTMLのフォーム部品のタグを覚えなければいけません。
もう、開発環境の準備から、DB用意して、HTMLのタグまで覚えさせられて…
ウェブアプリケーションデベロッパーって大変ですね。ウェブアプリケーションデベロッパーって噛みそうですしね。
ウェブアプリケーションデヴェロッパァァアア!!
例えば、選択ボックスから一つ選び、その選んだ言葉に対して答えを変える。
といったJSP。
選択させて送信するためのJSPとして、submit.jsp。
選択した結果を受け取って、表示するJSPとしてanswer.jspを用意します。
submit.jsp
<%@ page contentType= "text/html;charset=UTF-8" %>
< html>
< head>
< meta charset= "UTF-8" />
< title> 送信フォーム </ title>
</ head>
< body>
< form method= "POST" action = "answer.jsp">
あなたの血液型は?
< select name= "bloodtype" >
< option value= "a" >A型
< option value= "b" >B型
< option value= "o" >O型
< option value= "ab" >AB型
</ select>
< input type= "submit" value = "送信!" />
</ form>
</ body>
</ html>
answer.jsp
<%@ page contentType= "text/html;charset=UTF-8" %>
< html>
< head>
< meta charset= "UTF-8" />
< title> 結果フォーム </ title>
< body>
<%
String bloodtype = request.getParameter( "bloodtype" );
if (bloodtype.equals("a" )){
out.println( "A型だと思いました" );
} else if (bloodtype.equals("b" )){
out.println( "あー、B型っぽい!" );
} else if (bloodtype.equals("b" )){
out.println( "うん、O型だね!" );
} else if (bloodtype.equals("b" )){
out.println( "ですよね。ABのオーラが出ています!" );
} else{
out.println( "・・・" );
}
%>
</ body>
</ form >
</ html>
submit.jspによってbloodtypeに値を持たせて、answer.jspに飛んだ後、
request.getParameterにて、bloodtypeの値を取得して、
その結果をif文で照合し、その結果をプリントするといったもの。
これも立派な動的処理になるかな。
このやり取りを、前回のJavaの記事を応用すれば、
データをデータベースに持たせることもできますね。
結果画面は、こんな感じです。
昔流行ったゲームブックみたいなプログラムならすぐ作れそうですね。
選択肢ごとに、変数に値を持たせて、最終的な数値でハッピーエンドになれるか。
みたいなものなら、あっさり作れると思います。
サーブレットの出番なし。jspのみで作れますね。
DBから値を引っ張ったり、DBに値を与えたりするやり方は前回の記事で書きましたが、
では、なんでもデータベースを使わなければいけないのか。ということも、もちろんありません。
例えば、データ送信用のJSP、データを受け取って結果を返すJSP。
この二つでやり取りをすることも可能です。
その代り、HTMLのフォーム部品のタグを覚えなければいけません。
もう、開発環境の準備から、DB用意して、HTMLのタグまで覚えさせられて…
ウェブアプリケーションデベロッパーって大変ですね。ウェブアプリケーションデベロッパーって噛みそうですしね。
ウェブアプリケーションデヴェロッパァァアア!!
例えば、選択ボックスから一つ選び、その選んだ言葉に対して答えを変える。
といったJSP。
選択させて送信するためのJSPとして、submit.jsp。
選択した結果を受け取って、表示するJSPとしてanswer.jspを用意します。
submit.jsp
<%@ page contentType= "text/html;charset=UTF-8" %>
< html>
< head>
< meta charset= "UTF-8" />
< title> 送信フォーム </ title>
</ head>
< body>
< form method= "POST" action = "answer.jsp">
あなたの血液型は?
< select name= "bloodtype" >
< option value= "a" >A型
< option value= "b" >B型
< option value= "o" >O型
< option value= "ab" >AB型
</ select>
< input type= "submit" value = "送信!" />
</ form>
</ body>
</ html>
answer.jsp
<%@ page contentType= "text/html;charset=UTF-8" %>
< html>
< head>
< meta charset= "UTF-8" />
< title> 結果フォーム </ title>
< body>
<%
String bloodtype = request.getParameter( "bloodtype" );
if (bloodtype.equals("a" )){
out.println( "A型だと思いました" );
} else if (bloodtype.equals("b" )){
out.println( "あー、B型っぽい!" );
} else if (bloodtype.equals("b" )){
out.println( "うん、O型だね!" );
} else if (bloodtype.equals("b" )){
out.println( "ですよね。ABのオーラが出ています!" );
} else{
out.println( "・・・" );
}
%>
</ body>
</ form >
</ html>
submit.jspによってbloodtypeに値を持たせて、answer.jspに飛んだ後、
request.getParameterにて、bloodtypeの値を取得して、
その結果をif文で照合し、その結果をプリントするといったもの。
これも立派な動的処理になるかな。
このやり取りを、前回のJavaの記事を応用すれば、
データをデータベースに持たせることもできますね。
結果画面は、こんな感じです。
昔流行ったゲームブックみたいなプログラムならすぐ作れそうですね。
選択肢ごとに、変数に値を持たせて、最終的な数値でハッピーエンドになれるか。
みたいなものなら、あっさり作れると思います。
サーブレットの出番なし。jspのみで作れますね。
【Javaの最新記事】
この記事へのコメント