有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JBOSS+SPRING RequestParam URL编码

我有一个终点

@RequestMapping(value="/register")
public String register(@RequestParam("p") String p) {

}

传递给p参数的值实际上是一个编码的URL。但是,当它到达我的端点时,它会自动转换为解码形式。我希望它保持编码形式

有办法吗?也许是一些配置


共 (1) 个答案

  1. # 1 楼答案

    我同意你的观点。最方便的方法是:

    @RequestMapping(value="/register")
    public String register(@RequestParam("p") String p) {
        p = URLEncoder.encode(value, "utf-8");
    }
    

    其中utf-8只是一个例子。实际编码取决于您的情况

    确保它不是自动的,但不需要在任何部署的servlet服务器上重新配置servlet上下文

    要强制JBoss在utf-8中对url进行编码,您可以尝试添加到您的服务器配置中:

     <system-properties>
            <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
            <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
     </system-properties>