2006年3月31日17:55:31
對于重定向技術(shù)以前感覺是比較簡單的東西,后來在做東西的過程中發(fā)現(xiàn)其實里面還是有很多技巧的!
首先我們先比較一下:response.sendRedirect()和RequestDispatcher.forward()方法的使用情況
???response.sendRedirect()方法:因為response是JSP的內(nèi)含對象,因此它可以直接使用,而在Servlet當(dāng)中它則是HttpServletResponse或是ServletResponse.
???sendRedirect()方法是可以實現(xiàn)瀏覽器的http地址的跳轉(zhuǎn),它同樣可以實現(xiàn)帶有frame框架的地址的跳轉(zhuǎn)。而forward()方法則不能完成這種帶frame框架的地址的跳轉(zhuǎn)。sendRedirect()方法的重定向可以顯示在瀏覽器的地址欄當(dāng)中,而forward()則不能。
???sendRecirect()不僅可以實現(xiàn)frame的跳轉(zhuǎn),也可以實現(xiàn)跨網(wǎng)站跨應(yīng)用程序的跳轉(zhuǎn)。它能夠傳遞帶查詢參數(shù)的變量及值,但是卻不能夠記錄請求前頁存的Request.setAttribute()當(dāng)中的值。因此如果用sendRedirect()方法進(jìn)行了跳轉(zhuǎn)后的頁面,沒有記憶功能,但是session中的值可以得到。而forward()就具有記錄屬性值的功能,跳轉(zhuǎn)后的頁面可以取得前一頁中保存的值。
???forward()方法也可以傳遞查詢參數(shù)及值。但是<jsp:forward>則不能傳遞查詢參數(shù),如果要實現(xiàn)查詢參數(shù)則必須嵌套<jsp:param name="name" value="value">來完成
???通過用<jsp:param>來傳遞查詢參數(shù),它不會顯示在瀏覽器的地址欄當(dāng)中,因此比response.sendRedirect()要安全一些
posted on 2006-03-31 18:12
水煮三國 閱讀(769)
評論(1) 編輯 收藏 所屬分類:
J2EE