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