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)
。。。。。。。。。。。。。。。。。。。。。。。。
<jsp:forwardpage=" "/>
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;
关于参数传递:
http://localhost:8080/Forward_sendRedirect/index.jsp?name=ken
跳转后,等价于访问 http://localhost:8080/Forward_sendRedirect/Jsp1.jsp?name=ken
访问index.jsp时的参数被传递到了目标Jsp1.jsp
而response.sendRedirect()是不行的
引用尚学堂的资料: