2017-05-21 27 views
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";

+1

在服务器端,它只发送头文件告诉浏览器发出另一个http请求。 –

+1

为什么不执行它?这只是Java。调用方法不会中断调用方法的执行,除非被调用的方法抛出异常。 –

+0

@ holi-java您的编辑是真正的解决方案。谢谢 – Moon

回答

1

这是一个普通的java代码,在控制完成后处理“sendRedirect()”它将继续执行。

相关问题