我需要一些关于URL映射的帮助,在我的代码中,当我去:
http://localhost:8080/register.asdf
http://localhost:8080/register.asddsdsd etc.
它总是返回http://localhost:8080/register
,但我想让它 404 NOT FOUND 。
我该如何解决这个问题?
public class WebInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(Config.class);
ctx.setServletContext(servletContext);
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
@Controller
public class UserController {
@RequestMapping(path = "/register", method = RequestMethod.GET)
public String registerGet(Model model) {
return "register";
}
编辑:我在Config.java中添加了以下代码并解决了感谢。
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(false);
}
答案 0 :(得分:0)
您可以限制client_secret
或@RequestMapping
的映射范围。
更改RequestMapping:
servlet.mapping
或者servlet.mapping:
@RequestMapping(path = "/register.htm", method = RequestMethod.GET)//for example
修改强> 如果您使用的是Spring 4.X,可以使用:
servlet.addMapping("*.htm");
答案 1 :(得分:0)
从docs使用以下配置来限制不需要的扩展程序
<mvc:annotation-driven>
<mvc:path-matching suffix-pattern="false" />
</mvc:annotation-driven>