且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

servlet和jsp的转发与重定向代码以及区别

更新时间:2022-06-04 13:27:10

1.首先说明以下重定向和转发的区别

重定向:浏览器发送请求到服务器之后,服务器会发一个状态码和再次请求的地址给到浏览器,浏览器根据地址再次请求服务器的过程。

转发:浏览器发送请求到服务器之后,服务器处理之后调用内部资源(另一个页面)将结果显示在浏览器上面。

区别:一:重定向发生了两次请求,转发只有一次。

    二:重定向之后浏览器的地址栏会发生改变,转发不会。

    三:重定向可以范围任何资源即使不是同一个web应用,转发只能访问本web应用的资源。

    四:重定向后request域失效不能通过request来共享数据,转发可以。

    五:重定向是浏览器跳转,转发是服务器跳转

2.servlet和jsp中转发与重定向代码实现

servlet:转发:RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");

  //Forward to requested URL
          rd.forward(request, response);

servlet:重定向:response.sendRedirect("http://jakarta.apache.org/struts");

jsp:转发:在JSP页面中,可以使用<jsp:forward>标签来转发请求,例如:
         <jsp:forward page="hello.jsp">

jsp:重定向<%response.sendRedirect("new.jsp");