27 Ocak 2010 Çarşamba

UrlReWrite ile UTF-8 problemi yaşamak...

Java'da arama motoru dostu URL yapmak istiyorsanız mutlaka bir uğramışsınızdır Url Rewrite Filter  adresine.


Problem: Tomcat suncusunda server.xml dosyasında CONNECTOR, HOST etiketlerine URIEncoding="UTF-8" eklendiği halde URLlerde UTF-8 problemi yaşadım.

Eğer bir formdan bilgi göndereceksiniz ve mesela TR karekterler içeriyorsa JSP dosyasının içine bozuk geliyorlardı.

Url Rewriter filtresini kaldırınca sorun ortadan kayboluyor, filre aktif olunca bu sorun geri geliyordu.

Çözüm: Tuckey.org adresinden kaynak kodlarını indirdim. Derleyip hata ayıklama biçiminde çalıştırdım. Url Rewrite filtesinin içine doFilter fonksiyonun ilk satırlarına request ve response setEncoding("UTF-8") ekledim. Ve sorun kayboldu.

Fakat bunun başka bir yolu daha olduğunu gördüm. Bu sebeple bir filtre yazdım ve adına UTF8Filtresi dedim. Web.xml dosyasında - contexte ait web.xml - ilk sıraya ekledim. Bu filtre sadece ve sadece doFilter fonksiyonunda request ve response nesnelerinin setEncoding("UTF-8") ataması yaparak zincire devam et dedim.

Ve problemim yine çözülmüş oldu.

Hiç yorum yok: