java类中跳转链接的方式有两种一种是forword,一种是redirect。
forword是请求服务器资源,是服务器直接访问目标地址的url,把url相应的信息返回给浏览器。然而浏览器并不知道url的地址,所以说地址还是原来的地址。
redirect是服务器端根据逻辑代码返回一个状态码,告诉浏览器去访问最新的url地址。
数据库上说
forword请求的话访问的地址,可以接受request请求的参数。
redirect的话不能共享数据。
运用上面:
forword一般用于请求主页面,登陆成功后,通过用户的角色访问不同的功能。
redirect的话主要用于用户注销操作后跳转主页面的操作。
效率上
forword的效率高
redirect效率低
重定向,其实是两次request,
第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。
例子:
请求转发是服务器内部把对一个request/response的处理权,移交给另外一个
对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。 传输的信息不会丢失。