はじめに
現在、最も広くJavaが使われているのは「サーバ」の世界です。Javaの基礎は一通りわかった、次はサーバサイドだ――そう思ってやってみようとすると、これが以外に大変。サーバのプログラムはどうする? サーバ用のJavaってどうやって作る? 公開は? なかなか一筋縄ではいきません。
そんな「サーバサイド・ビギナー」のために、サーバサイド開発のための基本的な機能を一通りそろえたオープンソースの開発環境「Eclipse Web Tools Platform(WTP)」を使い、サーバサイドの講座を始めることとしました。「Javaは一通りわかったけど、サーバサイドって?」というあなた、一緒にサーバの世界を勉強していきましょう。
対象読者
- Javaの基本(文法全般および基本的なクラスライブラリの使い方程度)をマスターしている人。
- サーバサイド(JSP、サーブレット)について基礎から勉強したい人。
- Eclipse WTPを使った開発に興味がある人。
サーバサイドJavaとは?
「Javaは、サーバで広く使われている」とは、よく耳にする言葉です。Javaの基礎は大体わかった、となると、次に進むのはやっぱり「サーバサイドのJava」でしょう。しかし、そもそもサーバサイドJavaとは、どういうものなのでしょう。何が普通のJavaとは違うのでしょうか。
サーバサイドJavaの最大の特徴、それは「いくつもの技術の組み合わせである」という点です。基本的に「普通のJava」というのはmain
メソッドを定義して実行するという、「プログラムの形」がはっきり決まっています。しかし、サーバサイドJavaは単純なものではありません。サーバの世界では、その役割に応じていくつかのプログラムの形態があるのです。
サーバサイドJavaを学ぶということは、それらのさまざまな技術を1つ1つ理解し身につけていくということになります。一体、どんな技術があるのか、ちょっと整理しましょう。
- Java Server Pages
一般に「JSP」と呼ばれます。HTML内にタグを使ってJavaのソースコードを直接記述するもので、PHPなどのようなスクリプト言語感覚でJavaを使うことができます。サーブレットコンテナと呼ばれるJavaのサーバで動作します。
- サーブレット
サーバサイドJavaの基本とも言えるものです。Javaサーバ(サーブレットコンテナ)の中で動くようになっており、ブラウザ内で動くアプレットのサーバサイド版といったところから「サーブレット」と呼ばれます。
- Enterprise Java Beans
一般に「EJB」と呼ばれます。JSPやサーブレットなどと異なり、サーブレットコンテナでは動きません。J2EEサーバで動作するようになっています。サーバで動作するJavaBeansであり、直接ブラウザでアクセスするというのでなく、プログラム内からEJBにアクセスして利用するような形態をとります。
以上の3つが、サーバサイドJavaを構成する最も重要な技術と考えてよいでしょう。この内、JSP/サーブレットと、EJBは、若干扱いが違います。用途や役割はもちろんですが、JSP/サーブレットが動作する環境とEJBが動作する環境は異なっているのです。そのため、一般的にはサーバサイドJavaは「JSP/サーブレット」と「EJB」の2つに分けて考えられることが多いようです。
通常のWebアプリケーション開発ならば、JSPとサーブレットがマスターできれば十分です。EJBは、エンタープライズ開発で使われるものと考えてよいでしょう。本連載でも、JSPとサーブレットが使えるようになることを目指していきます。両者を自由に使いこなせるようになれば、「サーバサイドビギナー卒業」と言えるでしょう。
サーブレットコンテナについて
ここからはJavaの基本はわかっている前提で説明を進めますので、JRE/JDKについては既にインストール済みとします。まだインストールしていない方は別途用意してください。
まず、JSP/サーブレットといったサーバサイドJavaを自分で学習するためにはどのようなものが必要になるでしょうか。1つは、「サーブレットコンテナ」です。これは、JSP/サーブレットが動作する環境となるソフトウェアです。
そもそも、「サーバでプログラムを動かす」というのは、普通のアプリケーションに比べてかなり面倒であることは想像できることでしょう。ネットワークからHTTPのプロトコルで情報を受け取り、そこから送信された情報やヘッダー情報に含まれる各種のデータなどを解析して……などという処理をすべて一から作らなければならないとしたら大変な作業になります。
そこで、最初からHTTPプロトコルを使ったデータの送受を行う基本的な仕組みを用意しておき、その中で「この部分に当てはまるプログラムを用意すれば、すべての処理が完成する」という枠組みを考えたのです。これがサーブレットコンテナであり、この「当てはまる部分」がサーブレットというわけです。
このように、サーバ側でクライアントからの要求を受け取り、送り返すための基本的な仕組みをあらかじめ用意しておくことで、必要最低限のコードさえ用意すればサーバサイドの処理が実現できるようになっています。
このサーブレットコンテナは、有償無償いろいろなものがリリースされています。最も広く使われているのは、Apache Software Foundationがリリースしている「Tomcat」でしょう。これは今やサーブレットコンテナの代名詞ともなっているものですから、名前ぐらいは聞いたことがあると思います。オープンソースであり、Apacheのサイトから無償でダウンロードして利用できることから広く普及しています。本稿でもTomcatを使用することにします。
Tomcatの入手
まずは以下のURLにアクセスして、Tomcatをダウンロードしてください。Windowsの場合、専用のインストーラが用意されているので、これを利用するとよいでしょう。
上記URLが、Tomcatのサイトです。この左側にある「Download」から「Tomcat 5.x」というリンクをクリックし、「Quick Navigation」というところにある最新バージョン(2007年4月現在「5.5.23」)をクリックすると、そのバージョンのダウンロードコーナーにジャンプします。そこから「Binary Distributions」にある「Windows Service Installer」というリンクをクリックし、Windows用のインストーラをダウンロードします。
現在、Tomcatの最新版は6.xというものになります。なぜ一つ前の5.5番台を使うかのかというと、この後で登場する「Eclipse」という開発環境で、まだ6.0がサポートされていないためです。ですが、JSPとサーブレットの基本を学ぶという目的からすれば5.5でも十分ですので、今回はこのバージョンを使用します。