Tomcat 5.0.* 系で日本語パラメータを HTTP GET 送信したい。
技術情報 TOP へ

本ページでの使用環境
OS:Windows XP SP 2
Java:JDK 5.0 UPDATE 8
Tomcat:5.0.28
ここでは、JDK 5.0 UPDATE 8 、Tocmat 5.0.28 がインストールされ、使用できる環境が 既に作成されていることを前提として説明いたします。 これらのインストール及び環境作成については下記のページを参照ください。

JDK のインストール -Windows 編-

Tomcat 5.0.* 系のインストール -Windows 編 ( exe , zip ファイル ) -
* ここでは zip ファイルを使用して C:/jakarta-tomcat-5.0.28 に Tomcat をインストールした前提とします。
TOMCAT_HOME は、C:/jakarta-tomcat-5.0.28 です。 ( exe ファイルを使用してインストールした場合も本ページの手順と同じです。 )




Tomcat 5.0.* 系以降で、HTTP GET 送信時に日本語をパラメータに含めると文字化けが発生します。 これは、Tomcat 5.0.* 系では HTTP GET パラメータはエンコーディングを行わない挙動となったためです。 このため、そのまま、日本語を GET パラメータとして送信するとクライアント側で URL エンコードを行っていても、 サーバ側で文字化けとなります。

これに対して、server.xml の Connector 要素 URIEncoding 属性を使用して対処します。



server.xml の修正

server.xml の Connector 要素 URIEncoding 属性に使用する符号化方式を指定します。

ここでは、クライアント - サーバ間で使用する符号化方式を Shift_JIS とします。

例:URIEncoding="Shift_JIS" を追記します。

ファイル名:server.xml
<Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" 
    disableUploadTimeout="true" port="8080" redirectPort="8443" 
    maxSpareThreads="75" maxThreads="150" minSpareThreads="25" URIEncoding="Shift_JIS">
  </Connector>
上記の追記後、Tomcat を再起動すると日本語パラメータが HTTP GET で正常に受け取ることができます。

符号化方式は、使用する環境に合わせて選択してください。

●以下のページで設定しているような setCharacterEncoding を使用している場合、URIEncoding="true" とすることで setCharacterEncoding で設定した符号化方式を適用することもできます。

Web アプリケーションの POST 送信 日本語入力対応 - サーブレット POST 編 -




技術情報 TOP へ


Google
WWW を検索 whitemark.co.jp を検索

Copyright © 2006 by WhiteMark, All rights Reserved. Last Modified: 2006/05