是否可能使用forward:/
语法将请求重定向到非@RequestMapping
注释的方法。
我想要实现的是一种方法,可以在内部重定向请求到无法直接从浏览器访问的路径。
例如,如果用户请求/image.jpg
,我将其重定向到控制器,该控制器将回答图像,映射到/img/image.jpg
。重点是不能通过浏览器直接访问/img/image.jpg
。
有可能吗?我该如何实现这个必要性?
是否可能使用forward:/
语法将请求重定向到非@RequestMapping
注释的方法。
我想要实现的是一种方法,可以在内部重定向请求到无法直接从浏览器访问的路径。
例如,如果用户请求/image.jpg
,我将其重定向到控制器,该控制器将回答图像,映射到/img/image.jpg
。重点是不能通过浏览器直接访问/img/image.jpg
。
有可能吗?我该如何实现这个必要性?
forward:/
调用资源,则需要创建请求映射路径。但是,您可以通过以下方式实现:@RequestMapping(value = "/direct/browser/call")
public String connections(WebRequest request) throws SQLException {
//validate request
request.setAttribute("formButton", isPost, WebRequest.SCOPE_REQUEST);
return "redirect:/some/value";
}
@RequestMapping(value = "/some/value")
public String connections(WebRequest request) throws SQLException {
//validate request
if(request.getParameter("formButton")!=null) { return "/homepage"; }
// else : do processing
}
您还可以在请求映射中限制浏览器的HTTP GET
调用。例如:
@RequestMapping(value = "/some/value", method = RequestMethod.POST)
HTTP方法:HEAD、PUT、DELETE、TRACE和OPTIONS在您的情况下也非常有用。