繁体   English   中英

java spring restful-url 带分号

[英]java spring restful-url with semi-colon

我目前正在开发一个需要在我们的 restful-url 方案中使用分号的项目。

正如您可以想象的那样,我们在解决这个问题时遇到了问题——底层的 Java HTTPServletRequest 不能很好地运行。

有没有办法解决这个问题?

示例 restulf-URL:

http://服务/鲍勃;迈克/

看起来 Spring 只在 /service/bob 上工作 - ;MIKE 被截断。

我们已经尝试过 %3B (或 %3F 类似的东西),但它不起作用。

提前致谢!

ct

虽然@Amos M. Carpenter 的回答是正确的,但这是关闭此行为所需的配置:

@Configuration
@EnableWebMvc
public class WebMvcConfiguration extends WebMvcConfigurerAdapter 
{
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer)
    {  
        configurer.getUrlPathHelper().setRemoveSemicolonContent(false);
    }
}

这是您可以在 URI 中合法使用的所有分隔符的列表:

! $ & ( ) * , ; = + ' : @ / ?

尝试每一个,看看哪个适合你。

显然春天夺走了你的; . 我不确定这是否是 Servlet 的事情,但无论如何,它很糟糕。 Web 框架应该允许开发人员构建任何合法的 URI。

似乎这是 Spring 有意为之,但至少它是可配置的。

您需要告诉您的处理程序映射到setRemoveSemicolonContent(false) (默认为true )。 有关更多详细信息,请参阅Javadoc

这样做的原因是因为他们显然想从 URI 中删除;jsessionid=...后缀

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM