Java Web 中的轉發和重定向是非常常見的兩種方式,它們分別用于處理客戶端請求的不同情況。
轉發即服務器內部的一種跳轉方式,將用戶的請求轉發給另一個具有處理能力的資源,例如 Servlet 或者 JSP。在進行轉發時,地址欄 URL 不會發生改變。轉發的代碼如下:
request.getRequestDispatcher("/target.jsp").forward(request, response);
在上述代碼中,/target.jsp 是需要進行轉發的目標地址。
重定向則是將客戶端的請求重定向到另一個地址,這個地址可以是同一個 Web 應用的地址,也可以是其他 Web 應用程序甚至是其他網站的地址。與轉發不同,重定向會改變地址欄 URL,并且會向客戶端發送一個 302 狀態碼。重定向的代碼如下:
response.sendRedirect("http://www.example.com/target.jsp");
需要注意的是,使用重定向時,目標地址必須是絕對路徑。
總的來說,轉發和重定向都是在 Java Web 開發中經常使用的跳轉方式,開發人員需要根據實際需求選擇適合的方式。