无法排除Spring MVC中servlet映射中的URL

时间:2016-10-05 11:40:20

标签: spring spring-mvc

我在Spring MVC 3.2中有一个控制器,我想允许以下网址: http://localhost:8080/mypage http://localhost:8080/mypage/ http://localhost:8080/mypage/foo

我想排除其他任何内容,例如http://localhost:8080/mypage/bar会导致错误。目前bar被映射到getStuff方法。

我认为我必须能够在不使用过滤器的情况下完成此任务吗?

我的servlet映射如下所示:

<servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/mypage/*</url-pattern>
</servlet-mapping>

控制器请求映射:

@RequestMapping(method = RequestMethod.GET)
public String getView(HttpServletRequest request, @ModelAttribute("myform") final MyForm form)  {
        return "myview";
}
@ResponseBody
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@POST
@RequestMapping(value = "/save")
public String onSave(@RequestBody MyForm form, HttpServletRequest request, HttpServletResponse response)  {
        return "saved";
}

2 个答案:

答案 0 :(得分:0)

servlet的li{ transition:all 1s ease; line-height:20px; } ul:hover li.test{ margin-bottom:-120px; margin-top:80px; } 标记不支持排除。这是Servlet规范的限制 您必须在<url-pattern>

中以编程方式创建此功能

答案 1 :(得分:0)

您必须使用名为Spring MVC的{​​{1}}过滤器。

如果你自己编写Interceptors,你有以下两个选项:

<强> 1。选项:

使用Interceptor方法检查您的情况。如果您使用postHandle()方法,则可以访问postHandle(),如果您的网址与您的3个网址中的某个网址不匹配,则可以投放ModelAndView或更改Exception

<强> 2。选项:

使用ModelAndView方法,查看网址,如果他们不匹配则将preHandle()ModelAndViewDefiningException投掷如下: new ModelAndView()