servlet转发和重定向


请求转发:
request.getRequestDispatcher(URL地址).forward(request, response)

处理流程:

  1. 客户端发送请求,Servlet做出业务逻辑处理。
  2. Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。

 

2)重定向:
response.sendRedirect(URL地址)

处理流程:

  1. 客户端发送请求,Servlet做出业务逻辑处理。
  2. Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
  3. 客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。

  1. 重定向(redirect)和转发(forward)的区别:
    1. 请求的次数:
      • Redirect:发起两次请求,并响应两次
      • Forward:只一次请求一次响应
    2. Request请求中的内容不同
      • Redirect:第一次请求中的内容丢失
      • Forward:请求的内容会保存
    3. 地址栏的变化:
      • Redirect:地址栏显示的最终响应的资源
      • Forward:地址栏中显示的第一次请求的资源
    4. 资源的位置
      • Redirect:可以是任何位置,WEB-INF,META-INF下无法访问
      • Forward:只能是本项目中的位置,本项目中的任何位置都可以
    5. 发起的位置不同
      • Redirect:在客户端发起
      • Forward:在服务器端发起
    6. 对象不同
      • Redirect:是通过 HttpServletResponse对象完成的
      • Forward:是通过 RequestDispatcher接口的forward方法完成
    7.  
  2. 选择的依据:
    1. 如果要访问WEB-INF中的资源,必须使用转发
    2. 如果要访问本项目以外的资源,必须使用重定向

                3.是否需要把request中的内容传递给下一个资源

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值