先說(shuō)你的請(qǐng)求是使用的Dispatcher進(jìn)行的轉(zhuǎn)發(fā),地址欄不會(huì)改變?yōu)樘D(zhuǎn)后的請(qǐng)求地址,你可以搜索重定向和轉(zhuǎn)發(fā)的區(qū)別看看
創(chuàng)新互聯(lián)公司成立以來(lái)不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶(hù)需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門(mén)戶(hù)設(shè)計(jì)推廣、行業(yè)門(mén)戶(hù)平臺(tái)運(yùn)營(yíng)、成都app軟件開(kāi)發(fā)公司、手機(jī)網(wǎng)站制作設(shè)計(jì)、微信網(wǎng)站制作、軟件開(kāi)發(fā)、南充服務(wù)器托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶(hù)可以直觀的預(yù)知到從創(chuàng)新互聯(lián)公司可以獲得的服務(wù)效果。
然后頁(yè)面為空白先看看是否是頁(yè)面內(nèi)容本來(lái)就該沒(méi)有,或者你請(qǐng)求的頁(yè)面地址跳轉(zhuǎn)不對(duì),參見(jiàn)
如果還沒(méi)解決可以上圖看看
兩種方式。一種是servlet的轉(zhuǎn)發(fā)或重定向跳轉(zhuǎn)頁(yè)面,并將信息攜帶過(guò)去,另一種方式是ajax請(qǐng)求后臺(tái)接口,后臺(tái)接口進(jìn)行處理之后將信息返回給接口調(diào)用者。
可以通過(guò)前臺(tái)js請(qǐng)求后臺(tái)java代碼,將參數(shù)以返回值的形式,返回給前臺(tái)。這種方式用的最多的就是使用ajax了。通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,ajax可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。
request.getRequestDispatcher(url2).forward(request, response);
然后獲取url2的數(shù)據(jù)用 req.getAttribute("name");
通俗來(lái)說(shuō),form表單是寫(xiě)在前端頁(yè)面(如html、jsp)上的,form有一個(gè)‘a(chǎn)ction’的參數(shù),這里需要填寫(xiě)目標(biāo)地址,如果不填寫(xiě)的話(huà)客戶(hù)端是不知道往哪里發(fā)送信息的,因此form是由客戶(hù)端主動(dòng)發(fā)送給服務(wù)器(具體的地址就是action索要填的值)的。這屬于客戶(hù)端向服務(wù)器發(fā)起請(qǐng)求,代碼表現(xiàn)為:
form
action='10086.jsp' method='get'
…………
/form
就像你打10086,你問(wèn)問(wèn)題(提交表單),客服(服務(wù)器)會(huì)根據(jù)你的問(wèn)題(form)反饋答案。同理,正常來(lái)說(shuō),后臺(tái)接收到前端發(fā)來(lái)的信息后,會(huì)進(jìn)行一系列操作,最后發(fā)送結(jié)果回去。
====分割線(xiàn)====
而轉(zhuǎn)發(fā)和重定向的代碼是寫(xiě)在后臺(tái)代碼里的,因?yàn)椴⒉皇撬械臉I(yè)務(wù)都由同一個(gè)后臺(tái)頁(yè)面處理(例如統(tǒng)一管理平臺(tái)),前端form填的是頁(yè)面A,但實(shí)際上頁(yè)面A在接收到form后并不進(jìn)行處理,而是通過(guò)轉(zhuǎn)發(fā)或者重定向的方式,發(fā)送給頁(yè)面B,頁(yè)面B處理后會(huì)把結(jié)果發(fā)送給A,然后A再反饋給前端。因此,這屬于服務(wù)器向服務(wù)器發(fā)起請(qǐng)求
轉(zhuǎn)發(fā)的代碼是request.getrequestdispatcher (10086-2.jsp).forward(request,response),特點(diǎn)是url不會(huì)變,客戶(hù)端無(wú)法判斷是form表單的后臺(tái)頁(yè)面在處理還是別的頁(yè)面在處理(你在瀏覽器上是無(wú)法知道10086-2.jsp這個(gè)頁(yè)面的存在)。就像10086客戶(hù)有時(shí)候會(huì)讓你稍等,等待期間你是不知道他是在敲電腦還是找外援尋求答案。
重定向的代碼是response.sendRedirect("10086-2.jsp"),特點(diǎn)是url會(huì)變。瀏覽器的地址欄會(huì)明顯看到地址發(fā)生改變。就像10086客服告訴你該問(wèn)題不是他負(fù)責(zé)的范圍,然后幫你轉(zhuǎn)接到其他相應(yīng)的客戶(hù)。
至于怎么判斷啥時(shí)候使用轉(zhuǎn)發(fā),啥時(shí)候使用重定向,還請(qǐng)理解jsp的四大作用域之后再回頭思考。