web - みる会図書館


検索対象: UNIX MAGAZINE 2004年5月号
54件見つかりました。

1. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 39 図 8 JSP 2.0 に対応した web. xml く ?xml version="l . 0 " enc0ding="ISO—8859—1"?> く web-app xmlns="http://java. sun. com/xm1/ns/j2ee" xmlns :xsi="http://買買買.w3.org/2001/XMLSchema—instance" xsi : schemaLocation="http://java.sun. com/xm1/ns/j2ee - http: //java. sun. com/xm1/ns/j2ee/web-app-2-4.xsd" version="2.4"> く disp1ay—name>Demo く /display¯name> く description> UNIX MAGAZINE Demo Page . く /description> く /web-app> 図 9 式タグとスクリプトレットを使った、 veb ページ列 く %@ page contentType="text/htm1 ; charset=EUC—JP " % > く !DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4 . 0 Transitiona1//EN"> く html> く head> く tit1e>Script sample く /title> く /head> く body> 式タグ : く blockquote> く % = 1 + 1 く /blockquote> スクリプトレット : く blockquote> 1 + 1 く % 1 + 1 % > out ・ println(l + 1 ) ; く /blockquote> く /body> く /html> 図 10 見言語を使った Web ページ窈列 く %@ page contentType="text/htm1 ; charset=EUC—JP" % > く !DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4 . 0 Transitiona1//ENll> 112 く / tml > く /body> く /blockquote> く blockquote> 表現言語・ く body> く /head> く titIe>EL sample く /title> く head> く tml > UNIX MAGAZINE 2004.5

2. UNIX MAGAZINE 2004年5月号

JavaServer Pages 39 荒井美千子 JavaServer PagesfG まとめ 連載を始めたばかりのころ、 JSP (JavaServer Pages) はまだもの珍しい技術でしたが、最近ではこれで作成さ れたページをあちこちで見かけるようになりました。今回 は、これまでに紹介した話題をダイジェストにまとめ、連 載の締めくくりとします。 JSP の概要 JSP は、 Sun Microsystems が開発した从 b ペー ジを動的に作成する技術です。 Java の技術の 1 つである ServIet をベースにしており、仕様や必要なプログラム類 は公開されています。 2004 年 3 月現在、 JSP の仕様の最新版はバージョン 2.0 です。 JSP 2.0 には、この連載でもとりあげた表現 言語 (Expression Language) が標準で組み込まれてい 0 JSP の最新版の仕様は図 1 のページから入手できます。 この連載では、 JSP を動作させる環境として Tomcat を 使ってきました。 Tomcat は、 Apache Software Foun- dation の Jakarta プロジェクトで作られた JSP 機能を もっ Web サーバーです。 連載で使用したのは Tomcat 3. x ~ 4.1. x ですが、現時 点 ( 2004 年 3 月 ) で公開されている最新版は JSP 2.0 に 対応した Tomcat 5.0.19 です。 Tomcat のバイナリ・パッケージは、図 2 のページから UNIX MAGAZINE 2004.5 ・クライアント (web プラウザ ) 側でページを作成する Web ページを動的に作成する方法には、一般に、 JSP の仕組み 入手できます。 図 1 JSP 窈士様をダウンロードできる Web ページ 一万イ 0 果 ) 表示ジャンプフッ 5? ーク ( 印ツールウインめ ~ に崢 0 0 0 ーーきしの ー JSR ー n00152 」日 S に′“′ pa ににを 2.0 Sp じ c れ一 FinaI R じ、一 N に一 p に - 日 3 岱ホーム検常ィしコプマゆ P 「 0 ( e55 Community Java Java に一、お R -0 引 52J ぎ S 、 P “ 20Sce は、 ー査 Od リ ( い 0 物 」ミ Y 容 & p にこはにこ VO R に q 」一い What•s N を等 Par 朝 On jCP Pro こ d い“ P 「 2 & 5 ( ( 001n10n は Re 、 Ou 「 ( 05 Wh 飜引、鰍埀リ匹 0 当並ー些工 JSR -000152 JavaServer PagesTV 2.0 S pec ification 豸 = (Final Release) Sun Microsystems.lnc Mark RO 物 Maintenance Lead: ! ロレ物 1 0 ー d Specification: 当旦ロ旦三 Ofthe Java p 「 ocesssv p 「 ogram•version 丁加引 5 the F の Re4ease Of thlS specf に曲 on. as descnbedin http://jcp ・ org/aboutJava.com/unityprocess/final/jsr152 /index. html 図 2 Tomcat のバイナリ・パッケージをダウンロードできる 、 veb ページ ファイル編襄表示ジャンプゆブックマ - ク ( 印ツールウィズつヘルプ凹 ーれに J ね Site ー B 第 Do 物引 0 面一 N “叩に The Apache Jakarta Project 新一ホーム ( 拶常台珥・ [ プのマーり About Jakarta ・込に 0 住に h 【 [ p : / / 」 a k a 「 t ヨ . a p a ( h e . 0 「 9 / Binary Downloads ・ 5 皿 .1 ユ L2 日ロの ieL こ 0 E?LE M し要 を 0 ~ 四上記 PGP- MDå 5 立 19. 缸ロ 5 当工」文 02G2MD5 、 0 thp ノー enlence Of 0 ば users gene 「 al, blnanes are meant We make blnary versions 0 」「 code fO 「 the http://jakarta.apache.org/site/binindex.cgi ・サーバー (Web サーバー ) 側でページを作成する の 2 通りがあります。 JSP は後者の手法です。 105

3. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 図 12 Web ブラウザからのリクエストを Struts がタ里する手偵 設定ファイル 設定ファイルを読み込む Web ページのリクエスト Struts フレームワーク フォームの値を JavaBean に保存 Web プラウザ フォームの値 アクションの実行 Web アプリケーションが 実装しているアクションを 呼び出す JSP ファイルの出力結果を Web ブラウザへの応答とし て返す JSP ファイル JSP ファイルを変換する Web アプリケーション 介しました。 Struts では、 Web プラウザからのリクエストは、 1. フォームの値を保存する 2. アクションを実行する 3. JSP ファイルから Web プラウザに表示するコンテンツ を生成する JavaServer Pages のまとめとして、連載でとりあげ たさまざまな機能や仕組みをひととおり説明しました。ま という順番で処理されます ( 図 12 ) 。 た、連載では紹介しなかった JSP 2.0 や Tomcat 5. x に リクエストされた Web ページとフォームの値を保存す ついてもお話ししました。 る JavaBean 、あるいは実行するアクションなどとのマッ JSP の機能は豊富なので、すべてのキーワードや概念を ピングは、 Web アプリケーションごとに用意する設疋ファ 盛り込むことはできませんでしたが、全体像が分からなく イルに言します。そのため、 Struts では設疋ファイルの ても簡単なところから試せます。卿未をもった人は、 T 。 m ー を書き換えるだけで、 cat のような JSP をサポートした Web サーバーを動かす ・別のページと同じアクションを実行する ところから始めてみてはいかがでしようか。 ・フォームの値を別の JavaBean に保存する ( あらい・みちこ ASTEC) 複数のページで 1 つの JSP ファイルを共有する といったことが簡単におこなえます。 また、 Struts には、 ヘッダ ・フッタ ・メニュー れています。 いったん共通のレイアウトを決めてしまえば、あとは本 文などの内容力畯わる部分を作るだけで、それぞれの Web ページカ院成します。 ☆ などのレイアウトを統一する仕組みとして TiIes が用意さ 114 UNIX MAGAZ 工 NE 2004.5

4. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 図 7 JSTL を使った Web ページの表示 △ファイル 0 編集 0 表示 OØジャンプ 0 ブックマーク ( 印ツール (I) ホ検索 6JS 簡p@9 にカクマゆ c 。 re タグライブラリを使ってみましよう。 第 ) TagIib sample• Netscape ウインドウぐヘルプ ( H 回区 verbose=l で呼び出すと、このメッセージが表示されます。 UN 工 X MAGAZ 工 NE 2004.5 ないので、最近では表現言語とタグライプラリを組み合わ コードがそれぞれのファイルに埋め込まれて保守性がよく るための機能が用意されています。しかし、プログラムの JSP には、スクリプトレットなどのスクリプトを言当丕す トを受け取ったときに動的に処理させることもできます。 は、 JSP ファイル内にプログラムを埋め込み、リクエス 目的に適う既存のタグライプラリがみつからない場合 スクリプトや表現言語を利用する の言当杢です。 verS10n=l'2 4 " > XSi : schemaLocation= XMLSchema—instance' xmlns :xsi="http: / / w. w3 . org/2001/蛉 く web-app xmlns="http: //java.sun.com/xm1/ns/j2ee" と、 'http://java. sun. com/dtd/web-app—2—3.dtd"> く ! DOCTYPE web—app いは、ファイルのう可寸近の、 例です。 JSP 1.2 (Tomcat 4. x ) に対応した図 5 との違 図 8 は、 JSP 2.0 (Tomcat 5. x ) 対応の web. xml の をコピーし、必要な定だけを使えばよいでしよう。 ・ webapps/jsp-examples/WEB-INF/web. xml 下の、 ときは、 Tomcat 5. x をインストールしたディレクトリの 独自のアプリケーションのために web. xml を作成する が JSP 2.0 に対応している必要があります。 ます。このように言杢するには、 web. xml のフォーマット の test 属性の値として、表現言語で謎杢した式を使ってい せて使うようになっています。 スクリプトを使った Web ページ 式タグやスクリプトレットなどには、任意の Java のコー ドを言杢できます。 図 9 は、、、 1 十 1 " の結果を表示する Web ページの例で す。動的に Web ページの内容を変更するという点では意 味のない例ですが、図 10 の表現言語を使った場合と比較 してください。 表現言語を使った Web ペーシ 図 10 は表現言語を使った場合の例です。 数式を $ {... } の内側に記述するだけで、計算結果が式 タグと同じように Web プラウザに表示されます。 図 6 の、 く c:if test="${param. verbose のように、オプジェクトへのアクセスと式を組み合わせた 処理を、表現言語で謎することもできます。 プログラムを作成して呼び出す スクリプトや表現言語では実現できない複雑な処理をし たい場合、あるいは同じような処理を複数の Web ページ で実行したい場合は、、、部品 " を作って JSP ファイルから 呼び出すことができます。 この連載では、次の 3 種類の、、部品 " の作り方を解説し ました。 ・ Java のクラス ・ JavaBean ・カスタムタグ Java のクラスを操作する 任意の Java のクラスを作り、そのオプジェクトをスク リプトレットや表現言語から操作する方法は、 Java のプロ グラミングの経験があればほとんど新しい知識を必要とせ すに実現できます。 しかし、一方でプログラミングの経験がない Web ペー ジのデザイナーなどには扱いにくいでしよう。 Java のク ラスで実現された機能をスクリプトレットなどから呼び出 すのは、慣れていなけれは容易とはいえません。 111

5. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 図 5 Tomcat 4. x でタグライブラリを使うための web. xml の言己ホ く ?xml version="l . 0 " e coding = " 工 SO ー 8859 ー 1 " ? > く ! DOCTYPE web—app PUBLIC "-//Sun Microsystems , lnc. //DTD Web App1ication 2.3//EN" "http: //java. sun. com/dtd/web—app-2-3. dtd"> く web—app> く disp1ay-name>UNIX MAGAZINE く /display-name> く description> UNIX MAGAZINE Demo JSP pages ・ く /description> く taglib> く taglib—uri>http : //j ava. sun ・ com/j stl/core く /taglib¯uri> く tag1ib—Iocation>/WEB—INF/t1d/c . tld く /taglib—location> く /taglib> く /web—app> 図 6 JSTL を使った Web ページの例 く %@ page contentType="text/htm1 ; charset=EUC—JP" % > く %@ taglib uri="http://java ・ sun ・ com/jsp/jstl/core" prefix="c" % > く ! DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4.0 Transitiona1//EN" > く五 tml > く head> く titIe>Tag1ib sample く /title> く /head> く body> core タグライブラリを使ってみましよう。く br> く c : if test="${param. verbose く hr> verbose=l で呼び出すと、このメッセージか表示されます。 く hr> く /c: if> く /body> く /html> リを、 taglib ディレクテイプで、 く %@ taglib uri="http://java.sun.com/jstl/core prefix="c" % > と宣言した場合、 JSP ファイル内では、 く c : if のように謎します。 く /c:if> 110 介しましよう。図 6 は、 Tomcat 5. x と JSTL 1.1 の組 タグライプラリを使用した簡単な Web ページの例を紹 JSTL のタク プラリに同名のタグがあっても区別できます。 世師ェを利用することで、使用している複数のタグライ 合せで動作する Web ページで、 ・ http://localhost:8080/unimaga/ TaglibSample. jsp?verbose=l のように、 verbose パラメータに 1 が設疋されていれば @:if 〉タグで囲まれた部分を表示します ( 図 7 ) 。 JSP 2.0 用の JSTL では、 URI が、 http://java.sun. com/jsp/jstl/core に変更されています。 JSTL 1.0 のコードを移植する場合 く c : if test="${param . verbose 図 6 のコードでは、 JSP 2.0 対応の web. xml は注意してください。 UN 工 X MAGAZ 工 NE 2004.5

6. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 図 3 JSP 窈士組み Web ブラウザへの応答として返す . class を実行したときの出力を Web ブラウザ Web ブラウザからのリクエスト 4.. class ファイルを実行し、出力された内容を Web プラ を作成する。 3. Java のソースコードをコンパイルして . class ファイル 利用した Java のソースコードに変換する。 2. JSP 工ンジンは JSP のタグなどを解釈し、 Servlet を リクエストされると、 JSP 工ンジンにリクエストを渡す。 1. JSP 対応 Web サーバーは、拡張子が . jsp のファイルを ジを作りだします ( 図 3 ) 。 ルをみつけると、 JSP のタグの部分を解釈して動的にペー Tomcat などの JSP 対応 Web サーバーは、 . jsp ファイ きます。 JSP のファイルの拡張子は、通常は、、 . jsp " です。 め込んだテキストファイルを作成し、 web サーバー上に置 JSP の場合は、 HTML のタグと JSP のタグの両方を埋 ウザへ返す。 JSP 工ンジンは、 JSP ファイルから中間ファイル、 5. Web プラウザは受け取った内容を表示する。 ・ Java のソースコード 106 の下に作られます。たとえば、、、 u ⅲ maga " アプリケーシ /apache/jsp ・ work/Catalina/localhost/ アプリケーション名.org cat をインストールしたディレクトリの、 Tomcat 5.0. x の場合、これらの中間ファイルは Tom ー を生成します。 ・コンノヾイル後の . class ファイル Web サーバー JSP ファイル JSP ページのソースファイル JSP 工ンジンが変換 Java ファイル ServIet を利用した Java のソースコード コン / ヾイル . class ファイ丿レ Java の実行形式ファイル ョンの中間ファイルカ胙成される場所は、 ・ work/Catalina/localhost/unimaga.org/apache/ JSP になります。 なお、中間ファイルの作成場所は、 JSP 工ンジンの種類 やバージョンによって異なるので注意してください。 中間ファイルは、 JSP ページ開発時のデバッグの助けに もなります。 JSP ファイルの記述を間違えたり、 JSP フ ァイルから呼び出すプログラム内にバグがあったときは工 ラーメッセージが表示されます。しかし、困ったことに分 かりにくいメッセージが表示される場合も少なくありませ ん。このようなときは、 ・中間ファイルカられているか ・ Java のソースコードの内容 などを調べることで、 ・ JSP ファイルを解釈して実行する曰車の流れのどの段階 でエラーカ起きたのか 生成された Java のソースコードのうち、誤っている部 分に対応する JSP ファイルのコード といった、バグを解明するヒントが得られます。 JSP の機能 JSP は、 HTML にはない以下のような機能を備えてい UNIX MAGAZINE 2004.5

7. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages 指定する際は、 ます。 ・ディレクテイプ (directive) く j sp : アクション ・スクリプト く /j sp : アクション > アクション という形式のタグを挿入します。 暗黙オプジェクト ・カスタムタグとタグライプラリ 暗黙オブジェクト これらの機能を組み合わせることで、動的な Web ペー 暗黙オプシェクトは、 ジを柔軟に作成できます。 ・ Web プラウザからのリクエスト ディレクテイプ 表示しようとしている Web ページ アプリケーションの設疋 ディレクティブは、 JSP ファイルが Java のソースコ ・例外 ( ェラー ) ードに変換されるときに使われるグローバルな情報です。 JSP ファイルの先頭付近に、 などの JSP 工ンジンが管理している情報を保持したオプ ジェクトです。 く %@ ディレクテイプ・ JSP 工ンジンは必要に応じて、あるいは状況に合わせて の形式のタグを挿入して指定します。 暗黙オプジェクトを生成し、それが保持する情報に スクリプト ・スクリプト スクリプトは、 JSP ファイル内にプログラムを言する アクション ための機能です。スクリプト用のタグとして、 ・ JSP ページから呼び出されたプログラム ・・ % 〉 : 変数の宣言 などからアクセスできるようにします。 ・・・ % 〉 : スクリプトレット く % ・ カスタムタグとタグライブラリ ・・ % 〉 : 式タグ ディレクテイプやスクリプト、アクションでとりあげた の 3 つのタグが用意されています。 JSP のタグのほかにも、独自のタグを作成して JSP ファ このほか、 JSP 2.0 (Tomcat 5. x ) からは標準で表現言 イル内で使うことができます。この独自のタグのことをカ 語力駛えるようになりました。表現誦吾は、 スタムタグと呼びます。いくつかのカスタムタグをまとめ て JSP ファイルから利用できるようにしたものはタグラ という形式で、、、式 " で計算した値を参照できる機能です。 イブラリと呼びます。 式タグの代わりに HTML に埋め込んだり、 JSP のタグの 属性値を指定する際に利用できます。 JSP の機能をひととおり説明すると連載の内容を繰り返 アクション すことになるので、以下ではよく利用する機能に絞り、 Web アクションは、 Web プラウザからのリクエストが届いた ページの作成法ごとにまとめます。 ときに、 特別な処理をしない場合 ページを輔医する 外部のページを読み込む Web ページを JSP で作成するもっとも簡単な方法は、 HTML ファイルをそのまま置くことです。特別な処理を など、あらかじめ決められた特定の処理をおこなう機能で しない Web ページを作る場合は、この方法でよいでしょ す。 107 UN 工 X MAGAZINE 2004.5

8. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages Tag Library Descriptor JSP 1.2 (Tomcat 4. x ) 以前のバ ラリを使用するには、 ・ TLD (Tag Library Descriptor 子 ) ファイル 39 ージョンでタグライプ : タグライプラリ言当 SC 翡 好評発売中 ! プログラミング テクニック UN Ⅸコマンドのソースコードにみる テクニック プログラミング 、多渹見第和 、表プロクラミンク手法 ・ WEB-INF/web. xml ファイルの変更 が必要です。 TLD は、 ・タグ名 ・属性の名前や種類 ・属性値の指定が必須かどうか など、タグライプラリに含まれる個々のタグの仕様を記述 したファイルで、タグライプラリとともに配布されていま す。 図 5 は、 Tomcat 4. x で JSTL の core タグライプラ リを使用する際の web. xml の謎例です。 JSP 2.0 (Tomcat 5. x ) では、 ・ web. xml に言当する ・タグライプラリを WEB-INF/lib の下に置く のいずれの方法でもタグライプラリを利用できるようにな りました。たとえば、 JSP 2.0 に対応した JSTL 1.1 の ファイルー式、 ・ jstl.jar ・ standard. jar を WEB-INF/lib の下に置けば、 TLD ファイルを準備 したり、 web. xml ファイルを変更しなくても JSTL のタ taglibi' イレクテイプ グを利用できます。 UN 工 X MAGAZINE 2004.5 字列の指定です。たとえば、 JSTL の core タグライプラ JSP ファイル内で使用するときに、タグ名の前に付ける文 師ェは、タグライプラリに含まれるカスタムタグを ファイルに言当されている URI を指定します。 U. 月 / はタグライプラリを区別するための言リ子で、 TLD く % taglib uri=" URI" prefix="prefia;" % > ライプラリを亘言します。 taglib ディレクテイプは、 Web ページで使用するタグ になる工第といった ーを一を一・りを第そこには、プロ 泰物第に・・な新・ 0 ど ASCII ・多治見寿和著 ・ B5 判、 240 ページ ・ ISBN 4-7561-4389- X ・ 1 , 890 円 ( 税込み ) 生きたプログラムから学ぶ 実践的手法の数々 フリーの UNIX やアプリケーションのソース コードを見ながら、プログラミングにおけ る " 名匠の技 " を学ばうというのが本書の 目的です。長い年月をかけ、多くの人の手 ですこしずつ改良されてきたソフトウェア は洗練の度合いを増し、名匠の手になる工 芸品といった趣があります。そこには、プ ログラム開発に必要な技術がどっさりと盛 り込まれています。 目次から ( 本書より ) ソースコードから学ぶ◆データ構造◆ 2 重リンクリ スト◆木構造◆ AVL 木◆ハッシュ◆端末の操作◆端 末の制御◆ cat コマンド◆コマンド◆ファイルの ロック◆パスワード・ファイル◆ワンタイム・バスワ ード◆公開鍵暗号◆ Secu 「 e She Ⅱ◆構文の解析◆ yacc ◆ lex ◆ ping ◆ telnet ◆ ftp ◆ inetd ◆ xst 「◆ cmp と cksum ◆ man ◆フィルタコマンド (UNIX MAGAZINE 1997 年 1 1 月号 ~ 2000 年 3 月号より ) 株式会社アスキー 〒 1 60 ー 8584 東京都新宿区信濃町 34 J 日信濃町ビル 出版営業部電話 (08) 5362 ー 3300 109

9. UNIX MAGAZINE 2004年5月号

連載 / 」 avaServer Pages JSP に対応した Web サーバーは、通常はファイルの ところ JSP の機能は使っていないが JSP ファイルにした 、、いまの ページのレイアウトを検討するときのように ます。 合は、 HTML ファイルをそのまま表示させることができ HTML ファイルと解釈します。 JSP の機能力坏要な場 拡張子が . jsp なら JSP ファイル、 . html や . htm なら 拡張子は . jsp ・内容は HTML で言 い " 場合は、 の形式で謎し、、、属性 " によってどのような処理を指定す く加 page 属性 = " 値 " 属性 = " 値 " % > テイプです。 page ディレクテイプは、 page は、 Web ページの表示方法を指定するディレク 日本語の Web ペーシ というファイルを作って表示させる方法もあります。 工ンコーディングを指定する以下の属性です。 なかでも日本語の Web ページを作るときに重要なのが、 るかが決まります。 図 4 Jakarta プロジェクトのタグライブラリのページ The J 黻 0 日 Taelibs p " ら靆ー一純可 人方イル伍 ) 編集表示シャンプ 0 ブックマーり ( 印ツールウインへ井プ 気ホーム常御・ A 飢当プカマゆ The Jakarta Project h t 【 p : / / k 3 代 3 . 3 p ( h き .0 ー 9 Jakarta Taglibs bs Jaka 3 物 EbS JCP Standardized Tag 凵 b 「 a 「池 s き d 引 d ・ 1 0 幽型 : 1 」 - - リ型 ! Suppotted Tag 凵 b 町池 s 引に h This p 「 0 ( い s an open ・ source 「 epos 0 を for JSP custom tag hbranes and associated projects, にれ as TagL\brarvVaIidator classes and extenslons page ・ eatiO 「に 0 : 0 s 叩 po ロは 0 fibraries FO 「 a general descnptton Of Tag Libraries. please see 旦日 ! 里工旦 g - ! 旦 ! 埋当 dakafa TagllbS a 0 れ 0 he developmentt 「 ee Otthe reference ⅵ回 nen on (RI) fO 「 the 戛巳 S ! 旦 ! 型旦型 . 工旦 9 亠 ! 彑 - 住工凵 Thtsimplementation is done unde 「 p 「 Oject s は n02 「 d Currentlv, no 0 物 e 「 tag libranes ⅱ 1 Jakafia Taglibs rep 「 esent Java Communty P 「 ocess (JCP) standards ・日 ! 工旦並埋登 ・ News ・響可 S ・ contentType ・ pageEncoding 日本語の Web ページを作るときは、 ルにも、頁に く %@ page contentType="text/htm1; charset=EUC—JP" % > または、 く %@ page pageEncoding="EUC—JP" % > どの JSP ファイ のようなディレクテイプを入れる習慣をつけておくとよい でしよう ( 誌面の都合上、で折り返しています。以下 同様 ) 。 contentType は、Ⅵ b ページの内容の種類とエンコ ーディング " を、 pageEncoding は、、エンコーディングの み " を指定する属性です。上記の page ディレクテイプの 例では、いずれも EUC 工ンコーディングを指定してい ます。 contentType や pageEncoding 属性は、 HTML の META タグと同様に、 Web ページの内容の種類とエン 108 コーディングを指定します。ただし、 META タグはコン テンツのエンコーディングを Web プラウザに知らせます が、ディレクテイプの指定は JSP 工ンジンに知らせます。 JSP 工ンジンは、指定されたディレクテイプに従って日本 語の部分を処理します。 タグライブラリを利用する なんらかの条件に従って表示内容を変更する Web ペー ジを作りたければ、既存のタグライプラリの利用を検討し てみましよう。 JSTL (JavaServer Pages Standard Tag Library) は、 JSP とともに開発されているタグライプラリです。 般的なプログラミング言語にある if 文や for 文といった制 御構造や、 Web プラウザの値を表示するためのタグが含ま れています。 Jakarta プロジェクトは、 JSTL のほかにも、 ・セッション情報 ・メール ・文字列 正規表現 などのさまざまなタグライプラリを提供しています ( 図 4 ) 。 http://jakarta.apache.org/taglibs/index.html UNIX MAGAZ 工 NE 2004.5

10. UNIX MAGAZINE 2004年5月号

ー 0 連載 / Pe 日活用のヒント 図 1 アクセス糸信十の仕組み Web ブラウザ ロロロロロ Web/X—ジ アクセス統計用の画像 ( 多くの場合 1 ドットで透明 ) 図 2 usage-tracking ・ js var tracker ; Web サイトの内容を 保持している Web サーバー アクセス統計用の Web サーバー 'http://usage—tracking ・ jp/t ・ gif?js=yes' + tracker ) & u て 1 = ' + document . URL + '&ref=' 十 window . document . referrer 十 ー ) 十 navigatOr. userAgent ; document . write ( ) く img border="C)" width="l" hight="l" src= " , 十 tracker 十 ) " > ) ) , く img src="http://usage—tracking ・ jp/t . gif=> ?js=yes&url= ページの URL&ref= 参照元の URL=> &ua= ユーザー・エージェント " > もちろん、 http://usage-tracking.jp/はアクセス統言 t のために運用されていなければならない。 ところで、上記の IMG タグには t. gif という静的な ファイル名の後に、、 ?js=yes.. " といった問合せ文字列 (query string) がイ寸いている。問合せ文字列は、本来は CGI などの動的なページのためのものである。しかし、静 的 URL の後に問合せ文字列を付けても、私が知るかぎり どの Web サーバー・ソフトウェアでも問題なく静的なファ イルカってくる。そして、アクセス記録には問合せ文字 列も含めて言求される。 そこで、アクセス統計をおこなうには、 HTML ファイ ルに次の行を埋め込めばよいことになる。 く script language=" JavaScript " - src="/usage—tracking ・ js"> く /script> これは IMG タグを直接埋め込むことでも実現できるが、 JavaScript を使うと以下のような利点がある。 静的な IMG タグを使ってページごとの統計をとるに は、各ページに別のタグを挿入しなければならない。たと えば、あるべージには、 UNIX MAGAZINE 2004.5 く IMG SRC="http: //usage—tracking ・ jp/t . gif?=> page=top"> という行を挿入し、別のページには以下の行を挿入する。 く IMG SRC="http://usage-tracking ・ jp/t . gif?* page=about " > これに対し、 usage-tracking. js を使えば、同じものを 各ページに挿入することでページごとの統言 t がとれる。な ぜなら、 usage-tracking. js のなかでページの URL を参 照し、それをもとに IMG タグを作成するからである。 また、 usage-tracking. js は IMG タグにリンク元 (re- ferrer) の情報を含めるが、静的な IMG タグではそれがで きない。 さて、アクセス糸 t のためには基本的に以下の 1 行を各 HTML ファイルに挿入すればよいが、これでは実際には 不十分である。 く script language=" JavaScript " 疇 - src="/usage—tracking ・ js"> く /script> なぜなら、 JavaScript の機能がないか、抑制されてい るプラウザからのアクセスが統引・にまったく反映されない からである。そこで、このようなプラウザのために以下の 言当を追加しなければならない。 79