关于web系统中资源跳转:

1、跳转包括两种方式:

转发- forward
重定向-redirect

2、转发和重定向代码怎么完成?

转发:
request.getRequestDispatcher("/b").forward(request,response);
重定向:
response.sendRedirect(request.getContextPath()+ "/b");

3、转发和重定向的相同点和不同点:

相同点:都可以完成资源跳转

不同点:
	*转发是request对象触发的
	*重定向是response对象触发的
	*转发是—次请求,浏览器地址栏上地址不会变化【/a】
	*重定向是两次请求,浏览器地址栏上的地址发生变化【/a , /b】
	*重定向的路径需要加webapp的根路径
	*转发是在本项目内部完成资源跳转
	*重定向可以完成跨app跳转资源

4、跳转的下一个资源可以是什么?

跳转的下一个资源可以是web服务器中任何一种资源:可以是Servlet,也可以是HTML,也可以使用JSP.......

5、什么时候采用转发,什么时候采用重定向?【大部分情况下都使用重定向】

-若想完成跨app跳转,必须使用重定向
-若在上一个资源中向request范围中存储了数据,希望在下一个资源中从request范围中将数据取出,必须使用转发
-重定向可以解决浏览器的刷新问题
	若用转发,每刷新一次就执行一次请求,比如这个请求是往数据库存数据,完成后转发到成功页面,刷新多次就会往数据库重复提交数据;
	若用重定向,刷新多次跳转的是重定向的页面,不会往数据库中提交数据。

6、重定向原理是什么?

response.sendRedirect("/jd/login");
程序执行到以上代码,将请求路径/jd/login反馈给浏览器,
浏览器自动又向web服务器发送了一次全新的请求:/jd/ login
浏览器地址栏上最终显示的地址是:/jd/login

7、这句话还对吗:在浏览器上点击一个超链接。到最终网页停下来是一次请求。

这句话已经不正确了。因为有重定向机制存在!!!!!!
点击一个超链接,到网页最终停下来,这个过程,可能是多次请求。