配置charset以解码WebLogic中的查询参数

时间:2016-04-05 10:12:22

标签: java http servlets weblogic12c

我的servlet中存在编码问题。

我这样称呼我的servlet:

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

%d6Ö的编码值。

在我的servlet中,我执行以下操作:

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

1 个答案:

答案 0 :(得分:4)

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