Java中页面跳转方式主要分为两种,一种是重定向,一种就是转发,接下来就来谈一下这两种方式的区别。
一、重定向(Redirect)
重定向是客户端行为,为了响应客户端,java中的response对象将给客户端的响应信息进行封装,然后通过response.sendRedirect("地址"); 进行页面跳转。
重定向有以下特点:
a. 重定向页面跳转完之后,地址栏中的地址是最后一个页面的地址。
b. 请求的参数是无法向后传递的,也就是说先前的请求的参数无法传递到后面的页面。
c. 重定向是可以跳转到外部的站点。
二、转发(response)
转发是服务器行为,服务器端通过 request.getRequestDispatcher("地址").fowrard(request, response); 进行页面跳转。
转发有以下特点:
a. 页面跳转之后地址栏的地址是不变的,会是请求的页面的地址。
b. 请求的参数是可以传递到后面的页面的。
c. 转发是服务器行为,无法访问外部站点。
然后这两者最根本、最核心的区别在于,进行页面跳转的是一次请求还是两次请求,如果是一次请求的话就是重定向,那两次请求就是转发了。