请求转向
服务器内部跳转,页面变了 地址栏没变。由于跳转来自服务器所以可以访问 WEB_INFO 下的页面。
WEB_INFO 下面的页面 要考服务器来进行跳转。对于URL来说它们是隐藏的页面,访问不到的。
重定向
客户端重新定向访问服务器的地址,由客户端发起新的访问,页面地址 和 页面 都会改变。
重新访问一个新的地址有两种方式,一种是我们主动改变,比如显示的请求一个新的 URL
(通过 点击URL 或动态改变 href location )
一种就是服务器做的 redirect ,将我们的地址被动改变。
HTML
<a href="">
form.action = ""
self.location / window.location / window.opener.location
Servlet
重定向: response.sendRedirect("*.jsp?paras...");
跳转: request.getRequestDispatcher("*.jsp?paras...").forward(request, response);
Struts
action 类继承 org.apache.struts.action.Action
action 类覆盖了父类的 execute 方法 return ActionForward
ActionForward 的 redirect 属性默认是 false。
mapping.findForward('') 会打开对应的页面,但地址栏是否改变要看该 forward 中是否配置了
redirect="true" 这个属性
当我们访问一个action的时候,我们的地址栏地址必须写明是访问的哪个action,当从action中出来时,页面
内容已经改变了,但地址栏是否改变要看 redirect 属性的值。
如果 redirect="true" 我们将看到页面的真实地址,也就是 forward 对应的地址。
当 redirect="true" 时,一定要跳转到 非隐藏 页面,否则就会报错。
有服务器跳转后,地址栏是否改变是要看 redirect 属性。这时地址栏的地址是否改变是由服务器决定的。
而我们访问一个地址时,这个地址是我们主动改变的。