JavaWeb学习笔记 | 请求的转发和重定向

1. 语法:

(1). 请求的转发:

先初始化对象RequsetDispatcher,调用request的getRequestDispatcher(String path);

path为要转发的地址。

再调用RequestDispatcher对象的forward(request,response);

path要以/开头

也可以一次性的写为:

request.getRequestDispatcher(URL地址).forward(request, response)

例如(要将请求转发到testServlet):

String path = "testServlet";

RequestDispatcher requestDispatcher = request.getRequestDispatcher("/"+path);

requestDispatcher.forward(request, response);

(2). 请求的重定向

直接调用response对象的sendRedirect(String path)方法,path为要请求重定向的地址

例如(要将请求重定向到testServlet):

String path = "testServlet";

response.sendRedirect(path);

2. 本质区别:请求的转发只发出了一次请求,而重定向则发出了两次请求。

3. 具体:

(1). 请求的转发:地址栏是初次发出请求的地址

请求的重定向:地址栏不再是初次发出的请求地址,地址栏为最后响应的那个地址

(2). 请求的转发:在最终的Servlet中,request对象和中转的那个request是同一个对象

请求的重定向:在最终的Servlet中,request对象和中转的那个request不是同一个对象

(3). 请求的转发:只能转发给当前WEB应用的资源

请求的重定向:可以重定向到任何资源。例如response.sendRedirect("http://www.baidu.com");

(4). 请求的转发:/ 代表的是当前WEB应用的根目录

请求的重定向:/ 代表的是当前WEB站点的根目录(指Tomcat)

注意:

当前WEB应用的根目录:例如http://localhost:8989/day_30/

站点的根目录:http://localhost:8989/

4. 请求转发的流程:

(1).客户端发送请求,Servlet做出业务逻辑处理。

(2).Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。

5. 请求重定向的流程

(1).客户端发送请求,Servlet做出业务逻辑处理。

(2).Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。

(3).客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值