java - JBOSS+SPRING 请求参数 URL 编码

标签 java spring jboss

我有一个端点

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

}

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

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

最佳答案

我同意@JB Nizet 的观点。最方便的方法是:

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

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

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

要强制 JBoss 将 url 编码为 utf-8,您可以尝试添加到服务器配置中:

 <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>

关于java - JBOSS+SPRING 请求参数 URL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34961014/

相关文章:

java - 带有 Java 代码生成的 Eclipse UML 插件

java - 将 cookie 传递给 GET 请求的问题(POST 之后)

java - 从监听器中获取 DefaultMessageListenerContainer

java - Spring Security + 容器管理的身份验证问题

java - 如何管理连接池

java - 为什么 Java 7 字节码 validator 不会对此感到窒息?

java - 如何在Java中搜索字符串中的每个字符

java - PostConstruct 未在 junit 中调用

java - 服务器上的 64 位 JVM,客户端上的 32 位 JVM,可以组合吗?

java - EJB部署错误