在我们开发Java Web项目的时候,其实我们经常需要做页面跳转,而我们常用的两种方式为请求转发和重定向,下面就来简单的将两者做个比较。
在web项目里请求转发是这样写的, request.getRequestDispatcher(String path).forward(request,response),而重定向是这样写的,response.sendRedirect(String path),显然两者都是可以实现页面跳转的,那么区别又在哪呢?
1.请求转发时地址栏的地址不会改变,而重定向是会改变为要重定向的地址的。
2.使用请求转发的话,当前页面的request和response里的属性是可以传递到转发的页面的,而重定向的话并不能将当前request的属性传递过去
3.请求转发是服务器行为,对用户是透明的;重定向是浏览器行为,它需要向服务器发送两次请求。