sendRedirect() forward() 区别 选择

来源:互联网 发布:生意参谋数据导出工具 编辑:程序博客网 时间:2024/06/05 17:50

 比较sendRedirect()request.getRequestDispatcher().forward(request,response)

请问  sendRedirect() 和 forward 的区别是什么


(1) 重定向 --〉sendRedirect() ,转向 --> forward() 

(2) 实际发生的位置不一样

sendRedirect 发生在浏览器,请求时先返回到浏览器,然后浏览器在请求重定向的页面。

forward 发生在web服务器,当请求转向的时候,请求发到服务器,服务器直接通过web.xml查找请求。

(3) 用法不一样

request.getRequestDispatcher(“/URI”).forward(request,response),只能去当前的WEB应用的资源

response.sendRedirect(“/web应用/URI”);     可以去 外边URL

(4)如何选择

RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:

     从浏览器的地址栏中可以看到跳转后的链接地址。

前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法。

需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。 


0 0
原创粉丝点击