1
我很好奇sendRedirect()在重定向后如何工作。sendRedirect()之后的代码是否仍然执行?
MaintenanceController.java
@RequestMapping(produces = "text/html")
public String menu(HttpServletRequest request, HttpServletResponse response) throws IOException {
if((new BaseController()).checkPrivilege(request) == "ADMIN") {
return (new BaseController()).fallback(request, response);
}
return "maintenance/menu";
}
BaseController.java
public String fallback(HttpServletRequest request, HttpServletResponse response) throws IOException{
return String.format("redirect:%s",request.getHeader("referer"));
}
public String checkPrivilege(HttpServletRequest request) {
return (String)request.getSession().getAttribute("privilege");
}
它不象我只是把是System.out.print()的的sendRedirect(后)打印的东西如果它会立即执行。我想知道如果在某个时间点它仍然会执行它后面的代码。在这种情况下,return "maintenance/menu";
。
在服务器端,它只发送头文件告诉浏览器发出另一个http请求。 –
为什么不执行它?这只是Java。调用方法不会中断调用方法的执行,除非被调用的方法抛出异常。 –
@ holi-java您的编辑是真正的解决方案。谢谢 – Moon