WEB组件之间的3种关系

WEB组件之间的3种关系

A:重定向:repsonse.sendRedirect(url);

 response:响应到客户端。把url传给客户端,让客户端
 重新发起发起请求定位到url这个路径上。

 特点:
  (1):发生2次请求,请求之间不共享request中的数据。
  (2):重定向发生在客户端
  (3):地址栏的地址发生变化。

 如果使用重定向,而且想共享request中的数据??/
 //重新在URL后面添加参数。
 // 重定向
 String url = request.getContextPath() + "/servlet/TwoServlet?username="  + username + "";
 // 重定向(服务端重定向)
 out.println("<script>alert('操作成功');</script>");
 response.sendRedirect(url);

 // 重定向(客户端重定向)
 //out.println("<script language='javascript'>alert('操作成功');window.location.href='"
  // + url + "';</script>");

 服务端重定向与客户端重定向的使用场合:

 当如果想要重定向,并且要信息提示时,必须使用客户端重定向。

 

注解:重定向只能够传递文本数据。不能传递对象数据

 

 B:请求转发

  (1):请求转发默认从工程的上下文目录算起。路径前面要加"/"。表示使用绝对路径。
  (2):请求转发发生在服务端上面。

  (3):使用请求转发,不管转发多少次请求,都共享request中的数据。

  dispatcher.forward(request, response);

  把request,response传递到下一个Servlet中。


 C:包含。

   include

  RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet/SixServlet");
  dispatcher.include(request, response);

  使用场合:
   网页的头部与尾部的版权声明:做一个Servlet,用时包含这个Servlet。

  

请求转发与重定向的使用场合:

 当使用请求转发时,如果刷新,会一直执行提交的SErvlet。

 当使用重定向时,如果刷新,刷新是重定向后的页面。

 注解:登陆用重定向

 

request的作用域:(在请求开始与请求结束这一段范围之内。)

       重定向 不共享request,

       请求转发共享 request

       所以页面之间要共享对象时,用请求转发,用request.setAttribute("String",Obj) 让名字和对象绑定,由于转发共享

       request所以 里一个页面可以通过 request.getAttribute("String") 获取对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值