Servlet学习之(四)

一、重定向:服务器通知浏览器,重新发送请求(浏览器地址要改变,两次请求两次相应)

绝对路径:response.sendRedirect("http://localhost:8080/datapub/1.html ");

相对路径:response.sendRedirect("1.html ");   response.sendRedirect("../datapub/1.html ");

或者:response.setstatus("302"); response.serHeader("location","1.html");

Servlet学习之(四)

二、转发:当前请求未完成,服务器调用另一个程序继续完成整个请求

服务器:当前程序需要获得请求调度器 RequestDispcher

forward(request,response)当调度器协调多个servlet时,此方法返回最后一个servlet页面输出的内容

Servlet学习之(四)

三、重定向和转发的对比

(1)何时使用

重定向:可以指定当前项目的URL,也可以指定其它的web资源("/"代表的是端口的路径)-----从上面的图不难看出服务端做出了相应,所以是相对于浏览器的相对路径(http://localhsot:8080)而不是相对于(http://localhost:8080/webapp)

转发:只能指定当前项目的URL("/"代表的是项目的路径)-----转发始终在一次请求中完成所以它是相对于web项目的相对路径(http://localhost:8080/webapp)

(2)比较

转发:(一次请求一次相应)

1. 不会改变浏览器的地址栏

2. 共享一个请求(可以获得保存的数据)

3. 只能在同一个web应用中使用

重定向:(两次请求两次相应)

1. 浏览器中地址栏改变

2. 不共享请求(不可获得保存的数据)

3. 可以重定向到任意的URL

Servlet学习之(四)

上一篇:[0] DCI架构


下一篇:CentOS LVS安装配置