jsp/servlet 中sendRedirect,include,forward区别

时间:2021-07-11 02:11:58

1 sendRedirect

response.sendRedirect();

服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求新的地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。注意:使用request.setAttribute的内容,不能读取了。因为不是同一个请求了。如图所示

 

jsp/servlet 中sendRedirect,include,forward区别

2  forward

    (1) 在servlet里面

request.getRequestDispatcher("jsp2.jsp").forward(request, response);

   (2) 在jsp里面

<jsp:forward page="include.jsp"/>

页面会是页面2的内容,地址栏不变。使用request.setAttribute的内容,可以正常使用,因为是请求转发。如图

jsp/servlet 中sendRedirect,include,forward区别

3  include

  (1)在servlet里面

request.getRequestDispatcher("jsp2.jsp").include(request, response);

(2) 在jsp里面

<jsp:include page="include.jsp"/>

◆页面会同时包含页面1和页面2的内容,地址栏不变。

◆使用request.setAttribute的内容,可以正常获取使用。

jsp/servlet 中sendRedirect,include,forward区别