我目前正在做一个项目,它需要在我们的restful-url方案中使用分号。
正如你可以想象的那样,我们在完成这个任务时遇到了问题--底层的Java HTTPServletRequest运行得并不好。
有没有办法解决这个问题?
示例restulf-URL:
http://service/BOB;MIKE/
看起来Spring只在/service/bob - the上工作;MIKE被截断了。
我们已经尝试了%3B (或%3F之类的东西),但它不起作用。
提前感谢!
ct
发布于 2010-06-20 02:33:24
以下是您可以在URI中合法使用的所有分隔符的列表:
! $ & ( ) * , ; = + ' : @ / ?尝试每种方法,看看哪一种适合你。
显然Spring抢走了你的;。我不确定这是不是Servlet的事情,但无论如何,它都很糟糕。web框架应该允许开发人员构造任何合法的URI。
发布于 2017-07-18 05:02:21
虽然@Amos M.Carpenter的回答是正确的,但以下是关闭此行为所需的配置:
@Configuration
@EnableWebMvc
public class WebMvcConfiguration extends WebMvcConfigurerAdapter
{
@Override
public void configurePathMatch(PathMatchConfigurer configurer)
{
configurer.getUrlPathHelper().setRemoveSemicolonContent(false);
}
}发布于 2017-05-01 15:27:02
这似乎是Spring有意为之,但至少它是可配置的。
您需要告诉您的处理程序映射到setRemoveSemicolonContent(false) (缺省为true)。有关更多详细信息,请参阅the Javadoc。
这样做的原因是因为他们显然想要从URI执行remove the ;jsessionid=... suffix。
https://stackoverflow.com/questions/3072351
复制相似问题