天天看點

請求轉發、重定向、請求包含的比較請求轉發、重定向、請求包含的比較

請求轉發、重定向、請求包含的比較

一、請求轉發與請求包含比較

1,如果在AServlet中請求轉發到BServlet,那麼在AServlet中就不允許再輸出響應體,即不能再使用response.getWriter()和response.getOutputStream()向用戶端輸出,這一工作應該由BServlet來完成;如果是使用請求包含,那麼沒有這個限制;

2,請求轉發雖然不能輸出響應體,但還是可以設定響應頭的,例如:response.setContentType(”text/html;charset=utf-8”);

3,請求包含大多是應用在JSP頁面中,完成多頁面的合并;

4,請求轉發大多是應用在Servlet中,轉發目标大多是JSP頁面;

請求轉發、重定向、請求包含的比較請求轉發、重定向、請求包含的比較

二、請求轉發與重定向比較

1  請求轉發是一個請求,而重定向是兩個請求;

2  請求轉發後浏覽器位址欄不會有變化,而重定向會有變化,因為重定向是兩個請求;

3  請求轉發的目标隻能是本應用中的資源,重定向的目标可以是其他應用;

4  請求轉發對AServlet和BServlet的請求方法是相同的,即要麼都是GET,要麼都是POST,因為請求轉發是一個請求;

5  重定向的第二個請求一定是GET;