(#007)

復刻シリーズ 第57弾!!

━━━━━━━━━━━━━━━━━━━━━━ 2001.09.19 Vol.409 ━━━━━
 □■□
 ■□■  日刊「WEBのツボ」 〜次世代WEBマーケティングを読む〜
 □■□                      http://www.soho-union.com/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                          配信部数 2389部

【○】本日のお題 「ツボによく利くJAVA & DB」(#007) ━━━━━━━━━━
                                                           福井修@Fsys
▽ Tomcat4.0正式版 遂に Release

JavaでWeb-DB連携システムを構築する場合に要(かなめ)となるソフトのTomcat
(Servletコンテナ)のメジャーバージョンアップがありましたので、今回はこの
話題ですすめます。

一度 Web-DB連携システムのサーバサイドの構成をおさらいをしておきましょう。

           ブラウザ
            |  ↑
       〜〜〜〜〜〜〜〜〜
            ↓  |
           Web Server     ( Apache,WebSphere.. )
        Servlet Container ( Tomcat,Caucho Resin,JRun.. )
            ↓  ↑
         Java Program
             JDBC
            ↓  ↑
           DataBase       ( PostgreSQL,Oracle,...)

ブラウザで指定したURLにてネット上で待ち受けているWebServerにリクエストが
伝わります。指定されたリソースが、htmlファイルであれば、静的にWebServerで
該当ファイルのデータが返送され、後はブラウザ側で返送されたファイルのデータ
を編集し操作者に見える形で出力します。
指定されたファイルが .cgi,.php,.asp,.rhtml,.jspなどであれば、WebServerから
さらにプログラムが呼び出され、そのプログラムがサーバサイドで動的にデータを
編集してWebServerに渡し、さらにWebServerからブラウザにデータが渡ります。
ここで WebServerからJavaプログラムを呼び出したりJavaプログラムからデータを
もらう為には、そのための仕掛けが必要になります。そこで今回話題にするTomcat
の出番となる訳です。

Tomcatは、Apacheを開発・管理しているApache Software Foundationで開発されて
いるServletコンテナで、ServletAPI,JSP のリファレンス実装(これが仕様だ!)
という位置づけのソフトウェアプロダクトです。しかも無償で入手できます。
http://jakarta.apache.org/tomcat/

今 現役の Tomcat3.x は ServletAPI2.2 と JSP 1.1 の仕様なのに対して2001.9.17
Releaseの Tomcat4.0 は ServletAPI2.3 と JSP 1.2 と仕様が改訂されていますので、
影響が大きいのです。

これまでも ServletAPI,JSPの仕様は、改訂の毎に結構変わっていまして、古い仕様
に合わせて作成したプログラムが新しい仕様では動かないという事が、平気でよく
ありました。まだまだ Servlet/JSP は発展途上で、それなりに覚悟の出来た人たち
によって使われていましたのでそれはそれでそういう状況だったわけです。
私は,Tomcat3.1 から 3.2へかけて文字列定数の持ち方の変更でかなりはまりました。

ちなみに ServletJSPの仕様は、「Java Community Process」(JCP)によって決めら
れています。
http://java.sun.com/aboutJava/communityprocess/

今回の改訂は、待ち遠しい点がありました。それは次の点です。
・ JSP 1.2 では入力と出力で別のエンコーディングが指定できる
 page ディレクティブの pageEncoding 属性を指定すると JSPファイルは EUCでも
 出力はShift_JIS ができるはずなのです。
 
・ JSP 1.1 では入力と出力は同じ文字エンコーディングに限られている
<%@ page language="java" contentType="text/html; charset=Shift_JIS" %>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>JSP</title>
</head>
<body>

ただし
<%@ page contentType="text/html; charset=EUC-JP" %>
で JSP ソースの文字コードを 指定し、
 
  response.setContentType("text/html;charset=Shift_JIS");
  
で ブラウザに送信する文字コードを指定して
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
METAタグ で ブラウザに 文字コードを教えてやる。

この3段階をきちんとふめば やっと Linux(EUC) から ブラウザへShiftJIS が
文字化けせずに渡っていました。(が Formの入力受付では、いろいろ面倒でした)

これは言い換えるとiMode向け Shift_JIS コンテンツは、入力がShift_JISエンコ
ーディングに限られるということ。すなわち LinuxEUCエンコーディング環境で
は難しかった訳です。

今日のツボ『 さあ Tomcat4.0 へ いざ 』

これらのサイトは、参考になりますね。
■ Java Solution FAQ
http://www.atmarkit.co.jp/fjava/javafaq/index/javafaqindex.htmlTomcatを使う「JSPプログラミング」
第8回 JSPプログラムでクッキーを扱う
http://www.atmarkit.co.jp/fjava/rensai/jsp08/jsp08.htmlJava FAQ (JavaFAQ が本になったそうです)
http://www.gimlay.org/~javafaq/

【プロフィール】
福井 修 ( FUKUI Osamu )o-fukui@po.iijnet.or.jp fukui@fsys.net
福井システムリサーチ http://fsys.net/  主幹。システム構築歴25年。
Linux+JSP+PostgreSQLでの郵便番号簿 検索 http://fsys.net/post/
日本リヌクス協会、神戸商工会議所情報処理学会 会員
関西ソーホ・デジタルコンテンツ事業協同組合流通科学大学 委託SE http://www.umds.ac.jp/