2017-05-21 29 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()」它將繼續執行。

相關問題