用分号弹出的java spring restful-url
我目前正在研究一个需要在我们的restful-url方案中使用分号的项目。你可以想象,我们遇到了问题 - 底层的Java HTTPServletRequest播放不好。用分号弹出的java spring restful-url
有没有办法解决这个问题?
例如restulf-URL:
看起来像春天只工作/服务/鲍勃 - 中; MIKE被截断。
我们试过%3B(或%3F这样的东西),它不起作用。
在此先感谢!
CT
这一切你可以在一个URI合法使用的分隔符列表:
! $ & () * , ; = + ' : @/?
尝试每个看看哪一种适合你。
显然春季盗用你的;
。我不确定这是否是Servlet,但无论如何,它都很糟糕。 Web框架应该允许开发人员构建任何合法的URI。
证明这是一个servlet的东西。 Java Servlet API中似乎存在错误。 – 2010-06-28 12:43:47
你有参考吗?我遇到了同样的问题。 – Jason 2011-04-14 23:46:28
似乎这是Spring的一部分,但至少它是可配置的。
您需要告诉您的处理程序映射到setRemoveSemicolonContent(false)
(默认为true
)。有关更多详细信息,请参阅the Javadoc。
这样做的原因是因为他们显然想从URI中获得remove the ;jsessionid=...
suffix。
虽然@Amos M.卡彭特的答案是正确的,这里是需要的配置,以关闭该行为:
@Configuration
@EnableWebMvc
public class WebMvcConfiguration extends WebMvcConfigurerAdapter
{
@Override
public void configurePathMatch(PathMatchConfigurer configurer)
{
configurer.getUrlPathHelper().setRemoveSemicolonContent(false);
}
}
你期望有发生在这里? “MIKE”是否假设为“BOB”端点的参数,或者您是否期望此URL到达名为“BOB; MIKE”的端点?或者你是否试图将“BOB”和“MIKE”作为参数传递给服务/? – 2010-06-18 19:08:40
我们正试图获得整个字符串BOB; MIKE现在,但是列表['bob','mike']也可以。 现在,java-spring只是'bob'。 – 2010-06-18 19:44:32