2014-11-06 12 views
6

Yığındaki tüm katmanlarımı UTF-8 kodlamasına dönüştürmek için yardım arıyorum.JSP/GlassFish: UTF-8 kodlamasını doğru şekilde ayarlama

http://www.javapractices.com/topic/TopicAction.do?Id=206

Ben kodlaması hakkında endişelenmenize gerek 3 yerleri açıklayan:

Bu güzel bir makale buldum. (1) Oracle veritabanım şu anda UTF-8 olarak ayarlandığından, (2) tarayıcı ve (3) sunucudan endişe duyuyor.

Ben de ancak uygulama konusunda bazı acemi sorularla, bu detaylı makaleyi aşağıda izlemeye çalışıyorum

http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest

bulundu.

tarayıcısını ele almak için, ben her JSP sayfasının üst kısmında şunlar emin yaptık:

<%@page pageEncoding="UTF-8"%> 

(Referans için, here bakınız). Ben GlassFish 3.1.2 kullanıyorum yana

request.setCharacterEncoding("UTF-8"); 

:

sunucuyu ele almak için, ben şu Java servlet çizgi ve request.getParameter() veya request.getAttribute() deyimi vermeden önce JSP sayfalarını eklemeyi unutmayın yapılmış varsayılan olarak UTF-8 kullanmıyor, bu yüzden elle bir şekilde ayarlamanız gerekir.

glassfish-web.xml adlı bir dosya hakkında çok fazla web sitesi gördüm. Normal glassfish'in bu kısmı mı yükleniyor? Nerede bulacağımı bilmiyorum. Web uygulamam için WEB-INF dosyamda web.xml dosyasını kullanıyorum. Birisi bu web.xml dosyasını değiştirmem gerekip gerekmediğini anlamaya yardımcı olabilir mi, ya da camfish için kodlamayı yapılandırmak için glassfish-web.xml adlı yeni bir dosya bulmam mı gerekiyor? JSP/servlet isteği için

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
... 

, ben

<parameter-encoding default-charset="UTF-8"/> 

bu TAMAM web.xml dosyaya koymak mı web.xml dosyasında aşağıdaki satırı içerir:

My web.xml dosya ile başlar? Veya, bazı glassfish-web.xml dosya gitmek gerekiyor mu?

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.jsp</url-pattern> 
     <page-encoding>UTF-8</page-encoding> 
    </jsp-property-group> 
</jsp-config> 

ben bu satırlar sadece <web-app> ve </web-app> arasında insert farz ediyorum: JSP/servlet sonuç alabilmek için

, ben (kabul yanıt here bakınız) benim web.xml dosyasında aşağıdaki koydu. Ancak, bunun yerine başka bir tanıtıcıya ( <glassfish-web-app> ve </glassfish-web-app> gibi) girmeleri gerekip gerekmediğini bildirin.

<meta http-equiv="content-type" content="text/html; charset=utf-8"> 

Yararlı referanslar:

Ayrıca JSP <head> bölümünde aşağıdaki koymak

How to get rid of WARNING: PWC4011: Unable to set request character encoding to UTF-8

https://stackoverflow.com/tags/servlet-filters/info

https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding

cevap

9

Th e glassfish-web.xml, WEB-INF klasörünüzde oluşturabileceğiniz bir dosyadır. Glassfish 3.x için bu şuna benzer zorundadır:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <jsp-config> 
    </jsp-config> 
    <parameter-encoding default-charset="UTF-8" /> 
</glassfish-web-app> 

Ve haklısın, parametre kodlama ayarı da web.xml :)

See bu dosyada değil olmak zorunda :

+0

Teşekkür @unwichtich, bu yüzden BOTH dosyalarının WEB-INF klasöründe bulunması gerektiği doğru mu? ('Web.xml' AND 'glassfish-web.xml')? Ayrıca, GlassFish'i oluşturduktan sonra bu 'glassfish-web.xml' dosyasını aramak için yapılandırmam veya GlassFish'in otomatik olarak bulması gerekir mi? – user46688

+1

Glassfish-web.xml, varsayılan kodlama gibi Glassfish'e özgü yapılandırma özellikleri için kullanmanız gerekmiyorsa gerçekten gerekli değildir. Dosya WEB-INF klasörüne yerleştirilirse otomatik olarak taranır, Temizlemeden ve projenizi yeniden tasarlamadan önce yaptığınızdan emin olun :) – unwichtich

+0

Üzgünüm, bunun da gerekli olduğunu unutmuşum. Cevabımı güncelledim. – unwichtich

İlgili konular