モノノフ日記

普通の日記です

今日の仕事メモ〜tomcat5.xの仕様変更〜

殴り書きですが。

    • -

URIのお尻に?でクエリー引数渡すときはjava.net.URLEncoder使おうね。
tomcat5.0.16以降だとsetCharacterEncoding()がGET側で効いてないからサーブレットにフィルタ
追加する必要あり。じゃないと受け取り側で文字化けする。
追加するフィルタはこんな感じ。

package filter;

import java.io.*;
import javax.servlet.*;

public class characterFilter implements Filter {
public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain )
throws IOException, ServletException
{
req.setCharacterEncoding("UTF-8");
chain.doFilter(req, res);
}
public void init( FilterConfig config ) throws ServletException {
}
public void destroy() {
}
}


あと、server.xmlの自分が使ってるポートの<Connector〜>にuseBodyEncodingForURI="true"も設定する必要あり。apache2.2+tomcat5.5だとmod_proxy_ajp使って連携してるのでデフォルトだと8009番に追加。

    • -

これだけに2時間悩んだ俺ガイルorz