スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

基礎からのサーブレット/JSP(11日目)

基礎からのサーブレット/JSP 改訂版 (プログラマの種シリーズ)基礎からのサーブレット/JSP 改訂版 (プログラマの種シリーズ)
(2007/03/01)
宮本 信二

商品詳細を見る


CHAPTER10 入力パラメータの取得(その2)
日本語を入力する

いかん、間が空いてしまった。
怠けないようにしなければ。。。。。orz

前回作ったServletのソースに赤字で書かれている一行を挿入。
これで問題なく表示されるようになった。

package input;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EchoServlet2 extends HttpServlet {
  /**
   *
   */
  private static final long serialVersionUID = 3514319917956920802L;

  public void doGet(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException{
    request.setCharacterEncoding("UTF-8");
    String msg = request.getParameter("message");
    response.setContentType("text/plain; charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.println("message="+msg);
  }

}


※ここではUTF-8でやっています。

Tomcatパラメータのデコード
Tomcat5ではGETで送られるアドレス部のURL文字列デコードに、必ずISO-8859-1が使われるとのこと。
このデフォルトの挙動を変えるには、connectorタグにuseBodyEncodingForURI="true"の記述を追加しなくては
いけない
。こうすることによって、URLデコード時にsetCharcterEncodingメソッドで
指定した文字エンコーディングが使われる。
イケてない仕様だ。
何かと文字化けについては悩まされるのでコレは覚えておいたほうがよさそう。
スポンサーサイト
プロフィール

ラム君(モヒカンVer)

Author:ラム君(モヒカンVer)
都内でプログラマのようなものをやっています。
まだまだ初心者ですがよろしくお願いします。

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。