Web組件之間的跳轉

一、請求轉發(forward)

也叫作直接轉發方式,客戶端和瀏覽器只能發出一次請求,Servlet、HTML、JSP或者其他資源,由第二個信息資源響應該請求,在請求對象request中,保存的對象對於每個信息資源是共享的

語法:request.getRequestDispatcher(path).forward(request,response);

特點:(1)地址欄中的地址不會改變

           (2)只有一個·請求

           (3)資源是共享的,也就是說兩個servlet可以共享請求資源,通過request.setAttribute(String var1,Object var2)設置共享數據資源,在通過request。getAttribute(String var1)來獲取傳遞的資源

           (4)可以訪問WEB-INF中的資源:WEB-INF 文件夾是 Java Web 應用的默認安全目錄,即客戶端無法直接訪問,只有服務端可以訪問的目錄。
如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。

           (5)請求轉發不能跨域訪問:跨域是指域名,協議,端口均相同

二、URL重定向(redirect)

又叫間接轉發方式,實際是兩次Http請求,服務器端在響應第一次請求的時候,讓瀏覽器再向另一個URL發送請求,從而達到轉發的目的

語法:response.sendRedirect(String location);

特點:(1)地址欄中的地址會發生改變,通常看做客戶端跳轉

           (2)有兩個請求

           (3)在兩個servlet中不可以共享請求中的資源

           (4)最終的響應有第二個servlet來決定,與第一個servlet沒有關係

           (5)不可以訪問WEB-INF中的資源

           (6)請求轉發能跨域訪問

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章