本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
さまざまなWebアプリにおける常識を紹介してきた本連載も今回で最終回です。今回は番外編として、JSPとStrutsといったJavaの枠を超えて、Webアプリケーション開発におけるスクリプトの常識について説明していきます。
「スクリプト」という言葉はよく耳にしますが、いったいどのようなものなのでしょうか? 本記事ではスクリプト概念についての説明と、代表的なスクリプト言語であるJavaScriptについて説明し、最後にAjaxについても触れていきたいと思います。それぞれにJSPと連携するサンプルを提示しますので、ぜひご参考に。
スクリプト言語によってプログラミングされたプログラムをスクリプトと呼びます。一般的なプログラミング言語と同様の記述方法を取りますが、コンパイルを行い、コンピュータの理解できる機械語に変換して実行するプログラミング言語と異なり、機械語変換は自動的に行われるため、手間を掛けずに実行可能です。これは、ソースコードを逐次解釈しながら実行するインタプリタ方式を採用しているためです。
また、Webページ上でHTMLだけでは表現できない処理・動作を実現するためのプログラムをスクリプトと呼ぶことが多いです。代表的なスクリプト言語にはJavaScript、Perl、PHP、ActionScriptなどがあります。
スクリプトがどのようなものか分かったところで、次は代表的なスクリプト言語であるJavaScriptについて説明していきます。いまやWebアプリケーション開発で必ず耳にするJavaScriptとは、いったいどのようなものなのでしょうか?
米ネットスケープコミュニケーションズが開発したスクリプト言語の1つです。静的な情報だけしか表示できないHTMLソースにJavaScriptを埋め込むことで、動的な情報の表示・制御ができます。つまり、HTMLのお手伝いをしてくれるのがJavaScriptです。名前に「Java」という文字がありますが、Javaとの相互性はなく、まったく別のものです。
JavaScriptの詳細については、下記記事もご参照ください。
それでは、JavaScriptを埋め込んだJSPファイルを作成してみましょう。作業環境は、連載第2回「Strutsの常識を知り、EclipseとTomcatの環境構築」で構築した環境を利用します。Who.jspを以下のように変更し、「BMI算出」サンプルを作成します。
- <%@ page contentType="text/html; charset=Shift-JIS" %>
- <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
- <html:html>
- <head>
- <title>Who</title>
- <script type="text/javascript">
- <!--
- //【1】始まり
- function bmiCalculation(form){
- height2 = form.height.value*form.height.value; //身長(m)の2乗
- bmi = form.weight.value/height2 //体重÷身長の2乗
- bmi = Math.round(form.weight.value/height2); //小数点以下四捨五入
- form.bmi.value = bmi;
- }
- //【1】終わり
- // -->
- </script>
- </head>
- <html:form action="/hello">
- <table border="0">
- <html:errors/>
- <tr><td>
- あなたの名前は?<br>
- <html:text property="name" size="20" maxlength="30" />です。
- <br>
- あなたの体重は?<br>
- <html:text property="weight" size="20" maxlength="30" />kgです。<br>
- あなたの身長は?<br>
- <html:text property="height" size="20" maxlength="30" />mです。<br>
- <br>
- <html:button property="button" value="BMI算出" onclick="bmiCalculation(form)"/><!-- 【2】 -->
- <br>
- あなたのBMIは<html:text property="bmi" size="20" maxlength="30" />です。
- </td></tr>
- <tr><td>
- <html:submit value="OK" />
- </td></tr>
- </table>
- </html:form>
- </html:html>
上記サンプルプログラムは、入力された体重と身長を基にBMI(体重指数)を算出し、ダイアログで結果を表示するJavaScriptを組み込んだJSPファイルです。
補足:JavaScript未対応ブラウザへの配慮としてJavaScriptは「<!--~//-->」でコメントアウトしてください
【1】(9~18行)をご覧ください。この部分がJavaScriptです。JavaScriptは、通常<script>タグで囲んで記述します。【2】(39行)の<input>タグにある。onclickというコード、これをイベントハンドラといい、ページ上でどのように操作するとJavaScriptを実行するかを指定するものです。この場合、算出ボタンをクリックすると、【1】のJavaScriptを実行します。
ちなみに、イベントハンドラはonclick以外にもさまざまなものが用意されています。
イベントハンドラ | JavaScliptが実行されるタイミング | |
---|---|---|
onclick | クリックされたとき | |
ondbclick | ダブルクリックされたとき | |
onkeydown | キーが押されたとき | |
onkeypress | キーがしばらく押されたとき | |
onkeyup | 押されたキーが離れたとき | |
onmousedown | マウスボタンが押されたとき | |
onmouseup | マウスボタンが離されたとき | |
onmouseover | マウスカーソルがそのオブジェクトの上に乗ったとき | |
onmouseout | マウスカーソルがそのオブジェクトの上から離れたとき | |
onmousemove | マウスカーソルが移動したとき | |
onload | ページが読み込まれたとき | |
onunload | ほかのページに移動するとき | |
onload | ページが読み込まれたとき | |
onfocus | フォーカスを得たとき | |
onsubmit | フォームがサブミットされたとき | |
onreset | フォームがリセットされたとき | |
oncheange | フォーム部品の内容が変更されたとき | |
onresize | ウィンドウがリサイズされたとき | |
onmove | ウィンドウが移動されたとき | |
ondragdrop | ファイルがウィンドウにドラッグ&ドロップされたとき | |
次ページでは、実際にサンプルを動かしてみます。その前に、helloForm.javaとHello.jspを変更しますが、この2ファイルについては、説明を省きます。確認したい方は、サンプルのソースコードをここからダウンロードしてください。
Copyright © ITmedia, Inc. All Rights Reserved.
Java Agile 記事ランキング