JavaWeb中的重定向与转发

重定向和转发都能让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。

  • 重定向是两次请求,转发是同一次请求。

  • 重定向浏览器地址栏的URL改变;而转发浏览器地址栏的URL不变。

  • 重定向传输的信息会丢失;而转发传输的信息不会丢失。

  • 重定向不但可以在同一服务器不同应用里进行跳转,而且可以跳转到第三方服务器;而转发只能在同一服务器同一应用里跳转。

  • 重定向与转发使用相对路径时候,路径没有区别。
    使用绝对路径时候,重定向是服务器根路径开始,转发是应用项目根路径开始。

    路径例子如下:
    服务器是localhost:8080,项目根路径是/testweb,访问首页localhost:8080/testweb/index

  1. 都使用相对路径访问home页,即response.sendRedirect(“home”) 和 request.getRequestDispatcher(“home”).forward(request, response),都访问的是localhost:8080/testweb/home。
  2. 重定向使用绝对路径访问home页,即response.sendRedirect(“/home”),重定向sendRedirect访问的是localhost:8080/home,
    如果要访问localhost:8080/testweb/home,需要添加上下文(项目根路径),即response.sendRedirect(request.getContextPath()+“/home”);
  3. 转发使用绝对路径访问home页,即request.getRequestDispatcher(“/home”).forward(request, response),转发forward访问的是localhost:8080/testweb/home。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值