posts - 56, comments - 54, trackbacks - 0, articles - 4
             ::  ::  :: 聯(lián)系 :: 聚合  :: 管理
          forward,include,redirect是jsp中web頁(yè)面(jsp或servelt)的三種不同的路由關(guān)系,三個(gè)貌似相同,其實(shí)還是有許多差別的,而了解這些細(xì)微的差別,在web開(kāi)發(fā)中是很重要的。
          說(shuō)明:
          一、forward、include由javax.servlet.RequestDispatcher來(lái)封裝,由包容器container提供RequestDispatcher接口的實(shí)現(xiàn),其中聲明如下:
          void forward(ServletRequest req,ServletResponse res)
          void include(ServeltRequest req,ServletResponse res)
          可以通過(guò)兩種方式得到RequestDispatcher:
          1、ServletContext.getRequestDispatcher(String path);
          其中這里的path必須開(kāi)始為"/",即這里的path必須相對(duì)于context的root.
          2、ServeltRequest.getRequestDispatcher(String path)
          這里的path可以為相對(duì)路徑,如果path開(kāi)始為"/",則也認(rèn)為是從context的root開(kāi)始的。
          二、Redirect由HttpServletResponse.sendRedirect(String location)來(lái)支持
          差別:
          三個(gè)都可以對(duì)用戶的request進(jìn)行轉(zhuǎn)發(fā),但是還是有許多的不同,差別最主要集中在如下幾個(gè)方面:
          1、forward與include共亨Request范圍內(nèi)的對(duì)象,而redirect則不行,即:如果一個(gè)javabean被聲明為request范圍的話,則被forward到的資源也可以訪問(wèn)這個(gè)javabean,而redriect則不行。
          2、forward與include基本上都是轉(zhuǎn)發(fā)到context內(nèi)部的資源,而redirect可以重定向到外部的資源,如: req.sendRedriect("
          以上來(lái)源
          http://www.cn-java.com/target/news.php?news_id=3176


          struts-config.xml
          <forward name="succ"? path="/pages/dynabean2.jsp" redirect="true"/>
          設(shè)置redirect="true"后 轉(zhuǎn)向目標(biāo)頁(yè)面時(shí)效果和redirect一致。
          主站蜘蛛池模板: 益阳市| 罗平县| 中方县| 阿坝| 宜良县| 和龙市| 荃湾区| 建昌县| 濮阳市| 海南省| 通州区| 五台县| 乌审旗| 沧州市| 九台市| 东海县| 海安县| 香河县| 桂平市| 三门县| 长海县| 加查县| 万载县| 阿图什市| 苍溪县| 宁德市| 南汇区| 教育| 望谟县| 灵石县| 杨浦区| 绵竹市| 日土县| 普洱| 宁蒗| 阿尔山市| 新丰县| 临武县| 台前县| 邵武市| 大余县|