Java_Servlet跳转(响应一个已存在的页面)

本文详细解释了请求转发和重定向的区别,包括它们的工作原理、路径解析方式以及对资源消耗的影响。通过类比超市购物场景,形象地展示了两种跳转方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求转发(服务器端跳转,一次请求)

req.getRequestDispatcher("/index.html").forward(req,resp);
  • 客户端路径不变,一次请求
  • request作用域可以用来传值给客户端
  • 绝对路径绝对于工程根目录
  • 相对路径是相对于该servlet的访问路径
  • 只能跳转至当前工程的路径中,/WEB-INF/下的目录也可以访问

重定向(客户端跳转,两次请求)

resp.sendRedirect(req.getContextPath()+"/index.html");
  • 客户端路径改变 显示第二次请求的路径 两次请求
  • 第二次请求是客户端发起的,所以叫客户端跳转
  • 绝对路径绝对于服务器的根目录
  • 相对路径相对于servlet的访问路径
  • 可以跳转到其他的工程路径中

总结

  • 形象地讲,服务器相当于一个超市,客户端相当于顾客,当顾客光临超市并询问导购员一件商品在哪里时:
    • 如果导购员将该商品找到并直接拿给顾客,这样的操作为请求转发,也就是服务器端跳转
    • 如果导购员告诉顾客该商品在哪个货架,顾客再根据货架地址去找到该商品,这样的操作为重定向,也就是客户端跳转
  • 相比来说,请求转发服务器虽然仅处理一次请求,但是消耗资源更多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值