JSP中页面跳转 sendRedirect VS forward

 

response:
有关于对客户端请求之响应,可以利用它来设定一些要响应的讯息,例如标题信息、响应状态码等.

request:
有关于客户端请求的信息,都可以由它来取得,例如请求标头、请求方法、请求参数、使用者IP等等信息。

response:

           属于重定向请求;

           其地址栏的URL会改变;

           会向服务器发送两次请求;

 sendRedirect用法:
       response.sendRedirect("跳转页面路径或需要执行的操作路径");
       不保持request中设置属性,也就是说会产生一个新的request。跳转到得页面刷新仍然是当前页面。

sendRedirect用法:

    response.sendRedirect("hello.jsp")    是在响应后转向 

 

 request:

            属于请求转发;

           其地址栏的URL不会改变;

           向服务器发送一次请求;

 forward用法:
       RequestDispatcher view = request.getRequestDispatcher("跳转页面路径或需要执行的操作路径");
       view.forward(request, response);

      也可以写成:

      request.getRequestDispatcher("跳转页面路径或需要执行的操作路径").forward(request, response);
      保持request中设置的属性,跳转页面后刷新会重新执行操作。
      例如:
      index.html  ->(submit 数据) -> http://......../submit.do
      submit.do  对应的 Servlet 为 submit.java.  其中包含下列片段的两种情况:

     1.     response.sendRedirect("hello.html") .           浏览器会指向hello.html,并且地址栏是http://...../hello.html
     2.      RequestDispatcher view = request.getRequestDispatcher("hello.html");
             view.forward(request, response);
             浏览器会指向hello.html, 但是地址栏仍然是http://...../submit.do

  forward用法:

        RequestDispatcher     rd     =     request.getRequestDispatcher(URL);   
        request.setAttribute("str",str);   
        rd.forward(request,response);   
        是响应前转向,可以把参数带过去,你也可以在这里设置request.setAttribute("str",str);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值