
基礎から学ぶサーブレット/JSP(1)
サーブレット/JSPの役割を理解する
山田祥寛
2003/1/9
本連載では、JSP&サーブレットをシステムデザインという観点からご紹介していくことにします。基本的な構文から、JSP/サーブレット/JavaBeansを適所適時に使い分けていく考え方、そして「必然性」までを実践的な見地から体感していただければ幸いです。
| 本記事は2003年に執筆されたものです。サーブレット/JSP全般の最新情報は@IT キーワードINDEXの「JSP/Servlet」をご参照ください。 |
| やり直し「JSPとTomcat」 途中までかじったが挫折した。スキルチェンジしたい!という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく 「Java Solution」フォーラム 2007/4/19 |
||
「サーバサイドJava」というと、皆さんは何を思い浮かべられるでしょう? いえ、そもそも「サーバサイド技術」といった場合に、皆さんはどのようなイメージを持たれているでしょうか。
JavaScript(ダイナミックHTML)や古くはJavaアプレット、ActiveXコントロール、プラグイン技術まで、主にユーザーの視覚に訴えるクライアントサイドの技術と異なり、サーバサイド技術は主体がユーザーからは見えないところにありますから、イメージとしては極めてわきにくいといえるかもしれません。
しかし、その見えないところでサーバサイド技術は確実に普及しています。サーバマシンの膨大なリソースを十全に活用し、堅牢なデータベース・ファイルシステムと密に連携するサーバサイドアプリケーションは、主にプレゼンテーション層(表層)をつかさどるクライアントサイドとは異なり、地味である代わりに、もはやWebサイトになくてはならぬ、Webを支える「バックボーン」ともいうべきしくみなのです。
皆さんもあるいは、JSP(JavaServer Pages)&サーブレットやASP(Active Server Pages)、PHP(PHP:Hypertext
Preprocessor)のような技術をお聞き及びかもしれません。実際、これら技術の普及度たるや日進月歩、目を見張るものがあります。
その中でも、JSP&サーブレット――サーバサイドJavaは、Java言語をベースとした一貫性あるオブジェクト指向の概念もさることながら、豊富なクラスライブラリ、JavaBeansのような部品化技術、あるいは、フィルタやカスタムタグのような運用保守を容易とする種々のしくみを持ち合わせ、また、体系的に設計されたことで、いまやサーバサイドテクノロジのデファクトスタンダードともいうべき地位を占める強力なアーキテクチャです。
連載1回目の今回は、JSP・サーブレット・JavaBeansといった「サーバサイドJava」のコアを占める主要な要素について、いったい、どのような技術であるのか、それぞれにどのような特性を持っているかをご紹介することにします。取りあえずは細かい構文に気を取られる必要はありません。それぞれが「サーバサイドアプリケーション」という1つの体系の中でどのような位置を占めているのかを感覚として感じ取ってみてください。
サーブレットは、いうなれば、「サーバサイドで動作するアプレット(小さなアプリケーション部品)」です。かつてJava言語がWebの世界に本格的に登場した1997年あたりには、Internet
Explorer(以降、IE)やNetscape Navigator(以降、Netscape)などのブラウザ上で動作するアプレットがHTMLのシンプルな(悪くいえば貧相な)ページを飾り立てたものですが、サーブレットはそうしたビジュアルな表現を実現するものではありません。サーバサイドで動作し(必要に応じてデータベースやテキストファイルを検索、更新し)、その処理結果を(一般的には)HTMLとして返す――それがサーブレットの役割なのです。
![]() |
| 図1 サーブレットの役割 |
まずはサーブレットの大まかな骨組みを見てみましょう。リスト1は、あまりにも定番な「Hello,World」のサンプルです。画面1はその実行結果です。
| リスト1 HelloWorld.java |
import java.io.*; |
![]() |
| 画面1 HelloWorld.javaの実行結果 |
基本的な構文については、今後の連載でご紹介することにします。ここでは、サーブレットがサーバで動作するということを想定している以外は、「全く通常のJavaクラスである」という点だけを押さえておくことにします。細かい構文は分からなくても、なんとなく(いまは、なんとなく、でよいのです)out.printlnという命令が実行されて、HTMLが出力(表示)されていることがお分かりになるでしょう。
また、Javaアプレットが常にソースコード(.javaファイル)をコンパイル(一括翻訳)する必要があるコンパイル言語であったように、サーブレットもまた、常にコンパイルを行う必要があります。
サーバ上にはコンパイルされた後の「.class」ファイルを配置します。コンパイルの方法などについては、別途ご紹介しますが、PerlやASP、PHPのようなスクリプト言語に慣れている方は、特に、ソースコードをそのままサーバ上にアップロードするだけではサーブレットは動かないという点に注意しておいてください(また、このことはJSPの必要性を促す重要なポイントの1つでもあります)。
| サーブレットでは、クラスの実行結果がクライアントに返されます |
| 1/4 |
|
INDEX |
||
| 第1回 サーブレット/JSPの役割を理解する | ||
| Page1 サーブレットの役割 |
||
| Page2 JSPの役割 |
||
| Page3 JavaBeansの役割 |
||
| Page4 MVC技法のススメ |
||
| 「基礎から学ぶサーブレット/JSP」連載記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


