1:request.getRequestDispatcher("轉(zhuǎn)發(fā)路徑").forward(req,resp)該語句是實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)的,當(dāng)請(qǐng)求進(jìn)入到該servlet中執(zhí)行到該語句時(shí),服務(wù)器不會(huì)直接響應(yīng)而是轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)路徑得servlet繼續(xù)處理,由于將req和resp帶過去了,所以這期間是沒有重新創(chuàng)建request和response對(duì)象,所以在接下來的servlet中同樣可以獲得當(dāng)前servlet的request中的參數(shù)。
2:response.sendRedirect("")當(dāng)運(yùn)行到servlet的該條語句時(shí),服務(wù)器會(huì)響應(yīng)瀏覽器一個(gè)小心頭告訴瀏覽器重新請(qǐng)求方法中的路徑對(duì)應(yīng)的servlet,因?yàn)槭菫g覽器從新請(qǐng)求所以會(huì)創(chuàng)建新的request和response對(duì)象,因此上一次請(qǐng)求的request中的參數(shù)無法得到。
很好的理解這兩者的原理和區(qū)別有助于熟練操作請(qǐng)求的轉(zhuǎn)發(fā)和重定向。熟練的控制參數(shù)獲取。