1是3的简化方法。在该方法中使用RequestDispatcher类型的对象实现重新定向,这种处理中可以添加自己的URL参数(使用include方法),但是只能重定向到本机的页面。2.直接重定向,没有什么说的

解决方案 »

  1.   

    Reference:
    服务器端进行转向的4种方法:
    1. ServletContext的getRequestDispatcher()
    2. ServletContext的getNamedDispatcher()
    3. ServletRequest的getRequestDispatcher()
    4. ServletResponse的sendRedirect()进行转向。
    1.2.3 => forward()          4. sendRedirect()    
    使用forward方法,因为这些这样比较高效。只有在forward方法不能使用时(比如要转向到一个非本web应用),再使用ServletResponse的sendRedirect()方法。<jsp:fordward>与 sendRedirect 方法的比较
    虽然 <jsp:fordward>与 sendRedirect 方法,都可以将浏览器浏览的网页,重导至另一个网页,但是两者在原理上是不太相同。
    a. <jsp:fordward> : 动作是利用伺服端,将资料输出至缓冲区的机制,在前一个网页尚未输出到客户端前,取消资料的输出,然后输出另一个网页的资料,达到重导浏览器的效果。
    优点: 两网页间可以分享 request 对象内的变量。
    b. sendRedirect : 动作是透过 HTTP 协议的 Header , 对浏览器下达重导指令,因此,不牵涉到服务器端缓冲区的问题。
    不过由于 sendRedirect 方法作用于客户端,所以重导前后网页无法分享存在于 request 对象内的变量。
    Solution: response.sendRedirect(“sendRedirect.htm?name=sparkwu&[email protected]”)