servlet(jsp)中的重定向和转发

servlet(jsp)中的重定向和转发

由一个servlet(jsp)从内部转向另一个servlet(jsp)有两种方式:转发和重定向。

转发:是由一个web组件(servlet)将未完成的处理交给下一个web组件处理,转发的组件会共享request对象和response对象,从而实    现数据的共享。

可以使用以下方式进行转发:request.getRequestDispatcher("新资源").forward(req,resp);  

注意:

1.转发之前不能执行response.getWriter().close()或者flush(),因为一次浏览器请求只能做出一次响应,执行这个,会直接响应给浏览器,也就不会做后面的转发或其他动作。

2.转发之前,如果response对象中有缓存,转发之后会清空,也就是说你在ServletA页面种有执行输出到浏览器的语句,但是你转发ServletB,你只会看到servletB在浏览器中的输出。

--转发的特点:

1)转发的资源路径必须在web应用范围内

2)转发携带数据

3)地址栏地址没有变化

重定向:一个web组件的功能执行完毕,需要马上执行下一个web组件,这时可使用重定向.

原理:

服务器向浏览器发送一个状态码302及Location.浏览器收到后,立即向Location所指向的地址发送请求.
response.sendRedirect("资源路径");
等价于下面两句话:
response.setStatus(302);

response.setHeader("Location""/servletPro/Servlet2");

重定向特点:

1)能访问任意资源
resp.sendRedirect("http://www.baidu.com");
2)重定向之后地址栏有变化
3)重定向不会携带数据

注意:

1)重定向之前,不能执行out.close()或out.flush();
2)重定向之前,如果response对象中有缓存,转发之后会清空.






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值