1.RequestDispatcher.forward()
¡¡¡¡ ÊÇÔÚ·þÎñÆ÷¶ËÆð×÷ÓÃ,µ±Ê¹ÓÃforward()ʱ,Servlet engine´«µÝHTTPÇëÇó´Óµ±Ç°µÄServlet or JSPµ½ÁíÍâÒ»¸öServlet,JSP »òÆÕͨHTMLÎļþ,Ò²¼´ÄãµÄformÌá½»ÖÁa.jsp,ÔÚa.jspÓõ½ÁËforward()Öض¨ÏòÖÁb.jsp,´ËʱformÌá½»µÄËùÓÐÐÅÏ¢ÔÚ b.jsp¶¼¿ÉÒÔ»ñµÃ,²ÎÊý×Ô¶¯´«µÝ.
¡¡¡¡µ«forward()ÎÞ·¨Öض¨ÏòÖÁÓÐframeµÄjspÎļþ,¿ÉÒÔÖض¨ÏòÖÁÓÐframeµÄhtmlÎļþ,ͬʱforward()ÎÞ·¨ÔÚºóÃæ´ø²ÎÊý´«µÝ,±ÈÈçservlet?name=frank,ÕâÑù²»ÐÐ,¿ÉÒÔ³ÌÐòÄÚͨ¹ýresponse.setAttribute("name",name)À´´«ÖÁÏÂÒ»¸öÒ³Ãæ.
¡¡¡¡Öض¨Ïòºóä¯ÀÀÆ÷µØÖ·À¸URL²»±ä.
¡¡¡¡Àý:ÔÚservletÖнøÐÐÖض¨Ïò
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
¡¡ response.setContentType("text/html; charset=gb2312");
¡¡ ServletContext sc = getServletContext();
¡¡ RequestDispatcher rd = null;
¡¡ rd = sc.getRequestDispatcher("/index.jsp"); //¶¨ÏòµÄÒ³Ãæ
¡¡ rd.forward(request, response);
}
¡¡¡¡Í¨³£ÔÚservletÖÐʹÓ㬲»ÔÚjspÖÐʹÓá£
¡¡¡¡ 2.response.sendRedirect()
¡¡¡¡ÊÇÔÚÓû§µÄä¯ÀÀÆ÷¶Ë¹¤×÷,sendRedirect()¿ÉÒÔ´ø²ÎÊý´«µÝ,±ÈÈçservlet?name=frank´«ÖÁϸöÒ³Ãæ,ͬʱËü¿ÉÒÔÖض¨ÏòÖÁ²»Í¬µÄÖ÷»úÉÏ,sendRedirect()¿ÉÒÔÖض¨ÏòÓÐframe.µÄjspÎļþ.
¡¡¡¡Öض¨ÏòºóÔÚä¯ÀÀÆ÷µØÖ·À¸ÉÏ»á³öÏÖÖض¨ÏòÒ³ÃæµÄURL
¡¡¡¡Àý:ÔÚservletÖÐÖض¨Ïò
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
¡¡ response.setContentType("text/html; charset=gb2312");
¡¡ response.sendRedirect("/index.jsp");
}
¡¡¡¡ÓÉÓÚresponseÊÇjspÒ³ÃæÖеÄÒþº¬¶ÔÏ󣬹ÊÔÚjspÒ³ÃæÖпÉÒÔÓÃresponse.sendRedirect()Ö±½ÓʵÏÖÖض¨Î»¡£
¡¡¡¡×¢Ò⣺
¡¡¡¡ (1) ʹÓÃresponse.sendRedirectʱ£¬Ç°Ãæ²»ÄÜÓÐHTMLÊä³ö
¡¡¡¡Õâ²¢²»ÊǾø¶ÔµÄ£¬²»ÄÜÓÐHTMLÊä³öÆäʵÊÇÖ¸²»ÄÜÓÐHTML±»Ë͵½ÁËä¯ÀÀÆ÷¡£ÊÂʵÉÏÏÖÔÚµÄserver¶¼ÓÐcache»úÖÆ£¬Ò»°ãÔÚ8K£¨ÎÒÊÇ˵ JSP¡¡SERVER£©£¬Õâ¾ÍÒâζ×Å£¬³ý·ÇÄã¹Ø±ÕÁËcache£¬»òÕßÄãʹÓÃÁËout.flush()Ç¿ÖÆˢУ¬ÄÇôÔÚʹÓÃsendRedirect֮ǰ£¬ÓÐÉÙÁ¿µÄHTMLÊä³öÒ²ÊÇÔÊÐíµÄ¡£
¡¡¡¡ (2) response.sendRedirectÖ®ºó£¬Ó¦¸Ã½ô¸úÒ»¾äreturn;
¡¡¡¡ÎÒÃÇÒѾ֪µÀresponse.sendRedirectÊÇͨ¹ýä¯ÀÀÆ÷À´×öתÏòµÄ£¬ËùÒÔÖ»ÓÐÔÚÒ³Ãæ´¦ÀíÍê³Éºó£¬