きときと - Java - TomcatEncoding - 3.3

Tomcat3.3において、クライアントの文字コードを指定する方法です。

サンプルのダウンロード tomcat-encoding_3_3.lzh

Tomcat3.3は国際化機構により、簡単に文字コード指定が可能です。


コンテキストパスが /nihongo33 の場合、
$TOMCAT_HOME/conf の server.xml に以下のようにDecodeIntercepter要素を追加します。

server.xml (抜粋)
<Context path="/nihongo33" docBase="webapps/nihongo33" debug="0" reloadable="true">
<DecodeInterceptor defaultEncoding="Shift_JIS" useSessionEncoding="false" />
</Context>


必要な設定はこれだけです。
動作確認のため、次の index.html と ja33.jsp を使います。ソースはもちろんShift_JISで保存してください。

index.html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>Tomcat3.3</title>
</head>
<body>
<form action="ja33.jsp" method="get">
名前(日本語で): <input type="text" name="name" value="日本語">
<input type="submit" value="送信">
</form>
</body>
</html>




ja33.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%
String name = request.getParameter("name");
//コンソールに出力する
System.out.println("name: " + name);
%>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
</head>
<body>
<%-- ブラウザに出力する --%>
名前: <b><%= name %></b>
</body>
</html>
ソース中で明示的な文字コード変換をしていないことが分かると思います。




server.xml で DecodeIntercepter要素を指定しない場合は以下のように文字化けします。




各ファイルの配置は以下のようになります。




ご意見・ご感想は メール kito@kun.ne.jp か掲示板 http://6005.teacup.com/kitobbs/bbs で。


LastUpdate: 2002/03/22