java servlet 幾種頁面跳轉的方法
阿新 • • 發佈:2019-01-06
在訪問網頁的過程中,頁面自動重新整理、跳轉和重定向是經常用到的,這裡就說說在Java中是如何實現這些功能的!
一、頁面自動重新整理
頁面自動重新整理在股票網站中是經常可以看到的,網頁上顯示股票資料都是時時重新整理的。頁面自動重新整理的實現主要是通過HTTP響應頭告訴瀏覽器多長時間重新整理一次。在JavaWeb中的實現就有兩種方式:一是傳送HTTP響應頭;二是使用<meta>標籤來告訴瀏覽器。實現程式碼如下:
// 方法一:設定HTTP響應頭 |
response.setHeader( "refresh" , "5" ); |
// 方法二:傳送<meta>標籤 |
response.getWriter().write( "<meta http-equiv=\"refresh\" content=\"5\">" ); |
在實現這個方法的同時,我們還可以告訴瀏覽器告訴使用者重新重新整理後開啟一個新的頁面!也就是在瀏覽器端實現頁面跳轉,程式碼如下:
response.setHeader( "refresh" , "5;/RefreshProject/index.jsp" ); |
同時,既然方法二可以在瀏覽器端實現,我們也可以直接在網頁中使用<meta>標籤,內容就是上面方法二的內容一樣的。
二、頁面跳轉和帶值跳轉
頁面跳轉這個必須是在伺服器端實現的。比如說使用者登陸時,根據使用者選擇的登陸型別不同來交給不同的Servlet處理。主要是通過RequestDispatcher
// 傳遞引數
request.setAttribute( "myname" , "Xcoder Studio" ); |
// 頁面跳轉 |
request.getRequestDispatcher( "/index.jsp" ) |
.forward(request, response); |
這裡可以看到,通過這個物件我們可以實現帶request、response傳遞,並且可以在傳遞前設定修改request請求。給新的頁面處理。
傳參頁面跳轉:
三、頁面重定向實現
頁面重定向就是告訴瀏覽器改訪問目標,類似於傳送一個302響應,告訴瀏覽器去訪問一個新的地址。這個地址是對於瀏覽器的,所以如果是以”/”開頭的話是對於整個域名而言!程式碼如下:
response.sendRedirect( "/RefreshProject/index.jsp" ); |
四、重定向與跳轉區別
重定向與跳轉比較直觀的區別就是跳轉在瀏覽器端地址不會改變,而重定向瀏覽器端的地址會改變。
另外就是跳轉的時候我們是可以將客戶端傳送的請求一併傳送給跳轉目標,但是這點對於重定向就不能了!