response重定向与request转发


重定向与转发的区别:

  ⑴重定向:将一个请求处理完毕需要执行另一个请求,浏览器重新发送一个请求,重定向请求可以是任意请求。

    转发:在相应一个请求的时候,执行一部分之后需要转向另一个请求继续执行,比如servlet处理之后需要转向到jsp显示数据。

  ⑵运用:

  重定向:

redirect.sendDirect(转发路径);//次路径可以是任意应用路径
或者:
response.setStatus(302);//向浏览器发送302状态码
response.setHeader("location",重定向路径);//发送响应头Location为所给路径

  转发:

request.getRequestDisparter(转发路径).forward(request,response);

  ⑶特点与区别

  转发的应用路径与当前应用共享request,重定向则不行。

  转发发生在服务端,重定向发生在浏览器。

  转发路径只能在当前应用内,重定向路径任意。

  ⑷图解

  

 

由于转发和重定向的路径改变问题也导致了jsp中关于外部引用格式的问题,比如css路径的正确书写:

因为重定向(以定向jsp文件为例)之后的路径是是定向后的文件的具体路径,而转发后的路径是没变的,仍然是设置转发的文件路径(以servlet向jsp转发),即servlet路径,详情如下图:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM