請求轉發 jsp:forward和sendRedirect的區別
阿新 • • 發佈:2019-02-08
jsp:forward和sendRedirect的區別
response.sendRedirect():
Index.jsp
<%
out.println("aaaaaaaaaaaaa");
response.sendRedirect("/Forward_sendRedirect/Jsp1.jsp?name=ken");
out.println(".....");
%>
翻譯成index_jsp.java後:
。。。。。。。。。。。。。。。。。。。。。。
try { response.setContentType("text/html"); pageContext =_jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application =pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.println("aaaaaaaaaaaaa"); response.sendRedirect("/Forward_sendRedirect/Jsp1.jsp?name=ken"); out.println("....."); } catch (java.lang.Throwable t)
。。。。。。。。。。。。。。。。。。。。。。。。
Index.jsp:
<html>
<body>
<p> this isindex.jsp </p>
<%System.out.println("000"); %>
<jsp:forward page="Jsp1.jsp"/>
<%System.out.println("111");%>
</body>
</html>
翻譯成index_jsp.java後:
。。。。。。。。。。。。。。。。。。。。。。
try { response.setContentType("text/html"); pageContext =_jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application =pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("<html>\r\n"); out.write("<body>\r\n"); out.write("<p> this is index.jsp </p>\r\n"); System.out.println("000"); out.write('\r'); out.write('\n'); if (true) { _jspx_page_context.forward("Jsp1.jsp"); return; } out.write('\r'); out.write('\n'); System.out.println("111"); out.write("\r\n"); out.write("</body>\r\n"); out.write("</html>"); } catch (java.lang.Throwable t) {
<jsp:forward page="Jsp1.jsp"/>
等價於:
_jspx_page_context.forward("Jsp1.jsp");
return;
關於引數傳遞:
訪問index.jsp時的引數被傳遞到了目標Jsp1.jsp
而response.sendRedirect()是不行的
引用尚學堂的資料: