浏览器的页面跳转具体分为服务器端跳转和客户端跳转两类。
一、服务器跳转
1、解释
所谓服务器端跳转就是指地址栏内容不变(即客户端浏览器的地址栏不会显示跳转后地址的URL)。由客户端发送一个请求,请求一个服务器资源,这个资源又将请求跳转到另一个服务器资源,然后再给客户端发送一个响应,即服务器端跳转。所以,这种跳转客户端发送一次request,服务器端给出一次response。
2、跳转方法
request.getRequestDispatcher(“success.html”).forward(request,response)。
它是只要执行到此语句之后则立刻进行跳转,可以传递request属性。即跳转到指定的页面执行其他代码,执行完毕后返回接着执行转发语句后的代码。
二、客户端跳转
1、解释
所谓客户端跳转是指地址栏内容发生改变(地址栏当中会显示目标资源的URL)。当客户端client向服务器端server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在另一个位置,于是server在返回的response中写入那个请求资源的正确的URL,并设置reponse的状态码为301(表示这是一个要求浏览器重定向的response),当client接受到这个response后就会根据新的URL重新发起请求。重定向有一个典型的特征,即,当一个请求被重定向以后,最终浏览器上显示的URL往往不再是开始时请求的那个URL了。所以客户端共发送两次请求request,服务器端给出两次回应response。