servlet路徑跳轉(zhuǎn)那節(jié)問(wèn)題
在重定向跳轉(zhuǎn)中,response.sendRedirct(request.getContextPath()+"/test.jsp");可以
那么用response.sendRedirct("../test.jsp");這種相對(duì)路徑行嗎?
還有,在服務(wù)器內(nèi)部跳轉(zhuǎn)為什么是request.getRequestDispatche,而不是response....
在重定向跳轉(zhuǎn)中,response.sendRedirct(request.getContextPath()+"/test.jsp");可以
那么用response.sendRedirct("../test.jsp");這種相對(duì)路徑行嗎?
還有,在服務(wù)器內(nèi)部跳轉(zhuǎn)為什么是request.getRequestDispatche,而不是response....
2015-01-28
舉報(bào)
2015-01-28
相對(duì)路徑地址,會(huì)從當(dāng)前請(qǐng)求的地址計(jì)算.
比如你在你的工程,請(qǐng)求 192.168.1.1:8080/context/test1/test2/first.do
在first.do里跳轉(zhuǎn)到絕對(duì)路徑
request.getContextPath()+"/test.jsp"
相當(dāng)于,再次請(qǐng)求?192.168.1.1:8080/context/test.jsp
而response.sendRedirct("../test.jsp"); 中../會(huì)往上走一層. 變成了請(qǐng)求
192.168.1.1:8080/context/test1/test.jsp
所以相對(duì)路徑和絕對(duì)路徑不一定一致的,要看你的實(shí)際目錄了..
至于request.getRequestDispatche.foward()
其實(shí)他是重新定位一個(gè)本地資源..把這個(gè)資源加載到內(nèi)存.,重新生成響應(yīng)的內(nèi)容.然后才會(huì)把內(nèi)容response.
Redirct不是重新定位一個(gè)資源.而是 直接把響應(yīng)內(nèi)容302發(fā)回到了,重新去訪問(wèn)了另外一個(gè)地址.
2015-01-28
最后一句補(bǔ)一下:直接把響應(yīng)內(nèi)容302發(fā)回到了瀏覽器端