Servlet中重定向与转发的区别

    xiaoxiao2022-07-13  175

    Servlet中重定向与转发的区别

    转发重定向两者之间的区别:

    转发

    获得请求转发器----path是转发的地址 RequestDispatcher getRequestDispatcher(String path)通过转发器对象转发 requestDispathcer.forward(ServletRequest request, ServletResponse response)

    从Servlet1中蒋将请求转发待到Servlet2中;Servlet2在网页打印hello

    浏览器访问servlet1获得结果是servlet2的响应。地址不变。 转发只是将其交给另一个servlet或jsp来实现

    重定向

    使用方法:response.sendRedirect("/web/xxxServlet");

    在Servlet3内,我将其重定向到Servlet2.

    在访问servlet3时,虽然也响应的是servlet2,但是地址栏发生了改变

    两者之间的区别:

    重定向发生两次请求;而转发只有一次。转发不会改变访问的地址;而重定向会更改。请求转发发生在服务器端,由服务器(比如servlet)控制;重定向发生在客户端,由客户(通常是浏览器)控制。转发只能将请求转发给同一个WEB应用中的组件;而重定向方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。------------(重新定向可以访问外部网站 转发只能访问内部资源)请求转发相对快:因为请求转发过程在同一请求中;重定向相对慢:因为重定向过程发生在两个不同的请求中。转发的性能要优于重定向。
    最新回复(0)