1. 程式人生 > >javaweb專案的jsp頁面跳轉問題

javaweb專案的jsp頁面跳轉問題

在編寫自己的第一個javaweb專案的時候,出現了可以載入首頁面,但是當點選註冊按鈕的時候,頁面跳轉出現了問題,報錯是status404


這個就代表著找不到正確的頁面路徑,於是自己在網上查了很多解釋,都沒有解決,非常苦惱。但突然一次恍然大悟,發現了問題的根本原因:就是自己的jsp檔案存放位置出錯了

這是錯誤的存放位置(這種存放位置就代表著jsp檔案存放在WEB-INF資料夾下)


於是自己改變了一下存放路徑就變成(改到了web資料夾下,就是和生成的index.jsp檔案相同目錄的資料夾下)


於是重新執行專案,然後jsp頁面跳轉問題就迎刃而解了。

對於遇到的同樣的問題,希望能給大家一些幫助。

然後自己也隨便帶一點jsp頁面跳轉的幾種方法(畢竟都是看各種大神的總結後的一點小體會)

下面是三種js頁面的跳轉方式:

   1、window.location.href="URL";
        2、window.navigate("URL")
        3、window.location.replace("URL")

相信對於第一種window.location.href="URL"大家都不陌生,這裡就不多做介紹。第二種window.navigate("URL")這種方式只兼容於IE瀏覽器,不支援火狐啊、谷歌什麼的。

這裡面需要說一下的是window.location.replace(“URL”),我們舉例說明一下:

假如我們有三個介面,1.jsp;2.jsp;3.jsp,當我們設定好從1.jsp用herf跳轉到2.jsp(前提2上面用了window.location.replace(“3.jsp”),那我們會直接到介面3,貌似看上去和window.location.herf=”URL”差不多,但是當我們點選上一步時,也就是呼叫window.history.go(-1); wondow.history.back();方法的時候就會知道,我們直接回到介面1了而不是介面2。

JSP 跳轉方式大約有三種:

1、轉發request.getRequestDispatcher(".jsp").forward(request,response);


2、重定向:response.sendRedirect("success.jsp");  
注意事項:
1、此語句前不允許有out.flush(),如果有,會有異常:
2、這裡跳轉後,瀏覽器位址列會發生變化,意味著url發生變化
3、要是跳到別的主機上,那語句後面的程式碼會繼續執行,相當於開了一個新的執行緒,但是對於response就沒有意義了,因為你看不到了。
這兩者區別:
request.getRequestDispatcher()是請求轉發,前後頁面共享一個request
response.sendRedirect()是重新定向  前後頁面不是一個request
3<jsp:forward page="URL"/>注意事項:
1、此語句前也不允許有out.flush(),如果有,會有異常:
2、跳轉後瀏覽器位址列不變,但是隻能跳到當前主機下
3、此語句後面的語句執行完成後才會跳轉  
4、跳轉後得路徑變為當前路徑,圖片不是絕對路徑將無法顯示