JSPを書いて動かす
では、サーバで動かす簡単なプログラム(?)を書いてみましょう。NetBeansの場合、Webアプリケーションのプロジェクトには、初期状態で「index.jsp」というファイルが作成されています。「プロジェクト」ウインドウの中から、「webapp1」を開いてみましょう。その中に「Webページ」というフォルダがあり、そこをさらに開くと「META-INF」「WEB-INF」といったフォルダとともに「index.jsp」というファイルが作成されているはずです。これが、エディタで開かれているソースコードのファイルなのです。
Eclipseの場合、先ほど同様にindex.jspというファイルを作成しましたね。これをダブルクリックして開くと、やはりこのファイルを編集できるようになります。
この「.jsp」という拡張子は、「Java Server Pages(JSP)」と呼ばれるもののソースコードを記述したファイルであることを示します。JSPというのは、J2EEに用意されている機能の一つで、HTMLのタグのようにしてJavaのソースコードを埋め込んで動かすことのできる機能です。これは、JSPという拡張子でファイルを用意し、指定されたタグを使ってJavaソースコードを記述して作成をします。
このJSPは、HTMLと同じようにただソースコードをファイルに記述しておくだけで使えます。プログラムのコンパイルなどは一切不要です。その手軽さと、HTMLのタグの延長のような感覚でJavaを扱えることから、サーバサイドJavaのさまざまな技術の中でも広く浸透し使われています。ビギナーの間は、「サーバサイドJava = JSP」と考えておくとよいでしょう。
NetBeansでは、デフォルトで作成されているindex.jspには、最初からソースコードが記述されていますね。これらのうち、<%--から--%>までの部分(グレーのテキスト部分)は、コメントです。これらを削除すると、書かれているソースコードはこんなものになります。
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page</h1>
</body>
</html>
見たところ、最初に<%page ×× %>といった見慣れないタグがある他は、ごく普通のHTMLのソースコードですね。そうなのです。JSPというのは、基本的に「HTMLにスクリプトのためのタグを追加したもの」なのです。ですから、まずはHTMLのタグだけでプログラムを動かしてみれば、JSPがちゃんと動くかどうか確認できますね。
では、実際にプロジェクトを実行してみましょう。NetBeansの場合、<実行>メニューから<主プロジェクトを実行>を選んでください。内臓のTomcatサーバが起動し、webapp1プロジェクトからWebアプリケーションが作成され、Tomcatサーバにデプロイ(サーバで公開されるようにすること)し、Webブラウザを起動してwebapp1にアクセスし表示する――といった一連の作業をすべて自動的に行ってくれます。しばらく待っていれば、Webブラウザに、作成したWebアプリケーションが表示されるはずです。「JSP Page」という表示がされましたか?
Eclipseの場合、<Tomcat>メニューから<Tomcat起動>を選んでください。これでTomcatが起動します。そしてWebブラウザを起動し、以下のURLにアクセスしてください。
http://localhost:8080/webapp1/
これで、index.jspの表示が現れます。NetBeansの場合は、ブラウザのURLをよく見てみると以下のようになっていることがわかるはずです。
http://localhost:8084/webapp1/
若干、違いがありますね。そう、localhostの後にある数字が違っています。これは、NetBeansに内臓のTomcatと、普通にインストールしたTomcatで使用する「ポート番号」が異なっているからです。
ローカル環境(今、使っているマシン自体)のサーバにアクセスする場合、サーバ名は「localhost」というものを指定するのが一般的です。ただし、単に「http://localhost/」ではダメです。これだと、HTTPサーバ(いわゆるWebサーバ)にアクセスをしてしまいます。JSPはJavaサーバを使いますから、Javaサーバにアクセスするようにしなければいけません。
これには、Javaサーバが使用する「ポート番号」というものを指定すればいいのです。ポート番号というのは、ネットワークで利用されるさまざまなサービスを識別するために割り当てる番号と考えてください。NetBeansに内臓のTomcatの場合、「8084」というポート番号を割り当ててありますので、http://localhost:8084/とすればJavaサーバにアクセスできるようになります。Eclipseの場合には、Tomcatは「8080」をポート番号としてインストールしましたからlocalhost:8080/となるわけです。
作成したwebapp1というWebアプリケーションは、サーバ内のwebapp1という場所に配置されていますので、サーバ名の後にこれを指定し、http://localhost:8084/webapp1/とすればいいわけですね。こうすると、webapp1に用意されているindexファイル(index.jsp)が呼び出され、Javaサーバによって実行されてその結果がブラウザに表示されたというわけです。
問題なく、index.jspが表示されれば、とりあえず「プロジェクトの作成→JSPソースコードの編集→サーバの起動とWebアプリケーションへのアクセス」という一連の作業が一通りできたことになりますね。まだまだわからないことだらけでしょうが、とりあえず今回はここまで。次は、作成したWebアプリケーションを元に、本格的にJSPを使ってみることにしましょう。