问答详情
源自:3-12 练习题

重定向问题

为啥请求重定向是客户端行为,而请求转发是服务器行为

提问者:慕用7215365 2017-04-22 15:29

个回答

  • 醉相思
    2017-04-22 16:37:46

    我的理解是:response.sendRedirect("xxx.jsp")和request.getRequestDispatcher("xxx.jsp"),从字面上看,

    response对象是响应,所谓响应,简单理解就是先回到客户端,至于回到客户端之后做什么鬼,不知道,看response对象调用什么方法咯,有可能是调用getAttrbute(),setArrtbute(),sendRedirect()等等,方法各有各的含义,需要那个功能就调用相应的方法。

    而重定向的时候,response对象调用的是sendRedirect()方法,并且sendRedirect()方法是用来请求东西的,sendRedirect()方法的参数就是要请求的东西。既然是回到客户端重新发送请求,客户端来的东西当然是客户端干的“好事”咯,

    拙见,大神看到,有何不足,望指正哈……



  • shadow08
    2017-04-22 15:57:38

    概念性问题百度即可。重定向,浏览器的地址会发生变化,会发起新的请求;转发,原先的request对象和reponse对象继续可用。

  • 慕粉1502521177
    2017-04-22 15:56:10

    可以这么理解:重定向就相当于将请求重新往服务器发送,差不多就像是:在请求到达页面后,然后在页面将这个请求返回给客户端,并让客户端重新转向正确的页面;而转发像是:在请求到达某个页面后,重新以此页面为起点,再往另外的页面跳转。      

    所以重定向就像是客户端自己修改请求(“自己改错”),转发就像是服务器帮忙修改(“别人帮忙改错,自己不插手改错过程”)