一、sendRedirect
使用方式: servlet和jsp里面一样
response.sendRedirect();
说明:
服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求新的地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
注意:使用request.setAttribute的内容,不能读取了。因为不是同一个请求了。如图所示
二、include
使用方式
1)servlet里面
request.getRequestDispatcher("jsp2.jsp").include(request, response);
2)jsp里面
<jsp:include page="include.jsp"/>说明
◆页面会同时包含页面1和页面2的内容,地址栏不变。
◆使用request.setAttribute的内容,可以正常获取使用。
◆由于在jsp中<jsp:include />标签的执行级别高,所以使用自定义的标签往request中设置值,然后在include页面中使用时会取不到自定义标签中设置的值。如:struts 的<bean:define id="strutsTag" value="bean:define"/>标签。
如图:
三、forward
使用方式
1) servlet里面
request.getRequestDispatcher("jsp2.jsp").forward(request, response);
2) jsp里面
<jsp:forward page="include.jsp"/>
说明
页面会是页面2的内容,地址栏不变。
使用request.setAttribute的内容,可以正常使用,因为是请求转发。如图: