Java中转发和重定向区别

作用上的区别:转发和重定向的效果是一样的、重定向跳转范围大,转发只能在本web project下。

转发代码:

ServletContext conss = this.getServletContext();

RequestDispatcher req = conss.getRequestDispatcher("/index.html");

req.forward(request,response);

重定向代码:

Response.sendRedirect()


原理上的区别:转发和重定向区别?(url变与不变的作用:变的话可以请求其他web project。不变可以在内部转发数据。)

1,转发url不变,重定向是到新的url当中。

2,转发不能到其他web project下,重定向可以到另外一个web project下。

(重定向可以调整到百度,等等外部的web。而转发只能在本web project下。)

3,转发只需要request一次,重定向需要request两次。(这就是url为什么重定向url会变)

用户request转发,用户只请求一次,这就决定了转发的request对象是用户的request的对象。而用户request重定向,服务器先向用户response一个重定向的地址,用户再次request新的地址。所以request两次。 

 

案例:dispatcher servlet set数据和redirect  servlet 设置数据,看一下第三方servletget到谁的数据?

Dispatcher(调度:原封不动的转过去。)

request.setAttribute("name","123455");

RequestDispatcher res=this.getServletContext().getRequestDispatcher("/respons"); (不能把数据转发到其他web project ,因为参数只要求输入本web project资源地址。)                                                                            

res.forward(request, response);

Redirect(重新定方向)

request.setAttribute("name","redirect");

response.sendRedirect("/proservlet/respons");

第三方servlet接受request设置的数据。

String str = (String)request.getAttribute("name");

System.out.println("name"+str);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值