« MySQL 英字の大文字・小文字を区別する | トップページ | Android 開発環境 構築メモ(2012/04/17更新) »

2011年2月 4日 (金)

JSP→サーブレットで、日本語のリクエストパラメータを受けとる(修正)

■POSTの場合

サーブレットで日本語のリクエストパラメータを受ける際、
何も気にせず取得すると「?」を含んだ文字に化けてしまう。
これは受けとる文字コード等が原因なのだが、

getParameter("XXXXX")

で全角文字を受け取る前に

request.setCharacterEncoding("文字コード");

で受け取る文字コードを指定すれば回避できる。

下記サイトはパターン毎の説明があり、
大変わかりやすかったので、私が説明するより
下記サイトを見た方が早いと思いますw

http://ameblo.jp/archive-redo-blog/theme-10003613179.html

■GETの場合

Get型で日本語のパラメータを受け取る場合、
上記対策のほか、 server.xml を変更する必要がある。

<connector connectiontimeout="60000"
                port="8080"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
                redirectport="8443"
                usebodyencodingforuri="true" >

※上記赤文字の「usebodyencodingforuri="true"」を追加する

« MySQL 英字の大文字・小文字を区別する | トップページ | Android 開発環境 構築メモ(2012/04/17更新) »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153605/50772610

この記事へのトラックバック一覧です: JSP→サーブレットで、日本語のリクエストパラメータを受けとる(修正):

« MySQL 英字の大文字・小文字を区別する | トップページ | Android 開発環境 構築メモ(2012/04/17更新) »