2016-04-05 2 views
-1

У меня проблема с кодировкой в ​​моих сервлетах.Настройка кодировки для параметров запроса декодирования в WebLogic

Звоню сервлет, как это:

http://myserver.com/myapp/myservlet?p=%d6 

%d6 это закодированное значение для Ö.

В моем сервлета я сделать следующее:

public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws IOException, ServletException { 

    String s = request.getCharacterEncoding(); // Returns null 

    //request.setCharacterEncoding("ISO-8859-1"); // If I uncomment this line, p will be Ö. 
    String p = request.getParameter("p"); // Returns ý 

    ... 

Я хочу, чтобы установить кодировку с помощью конфигурации, а не с помощью кода.

Я попробовал следующее weblogic.xml, но это не имело никакого эффекта в этом случае:

<charset-params> 
    <input-charset> 
     <resource-path>*</resource-path> 
     <java-charset-name>ISO-8859-1</java-charset-name> 
    </input-charset> 
</charset-params> 

Как настроить WebLogic использовать кодировку ISO-8859-1 для request.getParameter?

ответ

3

В вашем weblogic.xml, попробуйте следующее:

<charset-params> 
    <input-charset> 
     <resource-path>/*</resource-path> 
     <java-charset-name>ISO8859_1</java-charset-name> 
    </input-charset> 
</charset-params> 

То есть, использовать ISO8859_1 вместо ISO-8859-1.

+0

Была такая же проблема, и этот ответ прибил ее. Любопытно, что параметр '' to 'ISO8859_1' в' 'в [weblogic-application.xml] (http://docs.oracle.com/middleware/1213/wls/ WLPRG/app_xml.htm # r6c1-t2) не работал, даже устанавливая '' на 'false'. Какой-нибудь намек почему? –

Смежные вопросы