轉發java
Ⅰ java 中,什麼時候用轉發,什麼用重定向
轉發是伺服器內部跳轉,數據不會丟失,瀏覽器只提交了一次請求
重定向是客戶端二次跳轉,數據會丟失,瀏覽器提交了二次請求
做增、刪、改的時候最好用重定向,因為如果不用重定向,每次刷新頁面就相當於再請求一次,就可能會做額外的操作,導致數據不對。
Ⅱ JAVA里重定向,轉發,轉向有什麼區別
java 重定向和轉發的區別
重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重 定向後,request內的對象將無法使用。
轉發和重定向的區別
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。
Ⅲ 請教大神。java里如何獲得請求轉發的url
request.getRequestDispatcher(url2).forward(request, response);
然後獲取url2的數據用 req.getAttribute("name");
Ⅳ java開發中,轉發和重定向什麼區別
轉發,可以傳遞request的值,重定向是重新發送請求,原來的請求參數值沒有了。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
Ⅳ java中轉發和重定向的區別
轉發與重定向的區別如下:
轉發是伺服器行為,重定向是客戶端行為
1.轉發在伺服器端完成的;重定向是在客戶端完成的
2.轉發的速度快;重定向速度慢
3.轉發的是同一次請求;重定向是兩次不同請求
4.轉發不會執行轉發後的代碼;重定向會執行重定向之後的代碼
5.轉發地址欄沒有變化;重定向地址欄有變化
6.轉發必須是在同一台伺服器下完成;重定向可以在不同的伺服器下完成
在servlet中調用轉發、重定向的語句如下:
request.getRequestDispatcher("new.jsp").forward(request,
response);//轉發到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
轉發過程:客戶瀏覽器發送http請求,web伺服器接受此請求,調用內部的一個方法在容器內部完成請求處理和轉發動作,將目標資源發送給客戶;在這里,轉發的路徑必須是同一個web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問的路徑,也就是說客戶是感覺不到伺服器做了轉發的。轉發行為是瀏覽器只做了一次訪問請求。
重定向過程:客戶瀏覽器發送http請求,web伺服器接受後發送302狀態碼響應及對應新的location給客戶瀏覽器,客戶瀏覽器發現是302響應,則自動再發送一個新的http請求,請求url是新的location地址,伺服器根據此請求尋找資源並發送給客戶。在這里location可以重定向到任意URL,既然是瀏覽器重新發出了請求,則就沒有什麼request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的路徑,客戶可以觀察到地址的變化的。重定向行為是瀏覽器做了至少兩次的訪問請求的。
重定向,其實是兩次request
第一次,客戶端request
A,伺服器響應,並response回來,告訴瀏覽器,你應該去B。這個時候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問自己web應用以外的資源。在重定向的過程中,傳輸的信息會被丟失。
Ⅵ java web!頁面轉發功能實現。
轉發用request.getRequestDispatcher(),這個是伺服器內部的跳轉,屬於同一次請求,所以request里的值可以傳遞。在Forward.jsp頁面專里做判斷
if(request.getParameter("type").equals("teacher"))
request.getRequestDispatcher("Teacher.jsp")
然後在屬Teacher.jsp里,仍然可以用request.getParameter("name")來取出Login頁面里提交的用戶名,密碼也是一樣。
那麼Student頁面也是一樣的方法。
Ⅶ (有關JAVA的)請求轉發 與重定向 怎麼實現
重定向response.sendRedirect("");
轉發request.getRequestDispatcher("").forward(request,response);
Ⅷ java伺服器轉發
1、A B C 通過socket連接到伺服器
2、A和B進入游戲狀態的話,這個狀態由伺服器維護。
3、當A發消息給伺服器,比如走了一步棋,這時候由伺服器通過socket發給B就可以了。
通過socket轉發。
Ⅸ java ActionForward 如何轉發參數
可以這樣:在b的最後寫return new ActionForward("/xxx.do?method=a");
其中xxx是你在struts-config.xml配置的action訪問名稱,同時在b中記得寫request.setAttribute("id",id);這樣才能讓a接收
Ⅹ Java中頁面跳轉和請求轉發的區別
讓瀏覽器獲得另外一個URL所指向的資源可以使用請求轉發(RequestDispatcher.forward)或則是重定向技術(HttpServletResponse.sendRedirect),但是兩者的內部機制有很大的區別:
1 請求轉發只能將請求轉發給同一個WEB應用中的組件,而重定向還可以重新定向到同一站點不同應用程序中的資源,甚至可以定向到一絕對的URL。
2 重定向可以看見目標頁面的URL,轉發只能看見第一次訪問的頁面URL,以後的工作都是有伺服器來做的。
3 請求響應調用者和被調用者之間共享相同的request對象和response對象,重定向調用者和被調用者屬於兩個獨立訪問請求和響應過程。
4 重定向跳轉後必須加上return,要不然頁面雖然跳轉了,但是還會執行跳轉後面的語句,轉發是執行了跳轉頁面,下面的代碼就不會在執行了。
假設你去辦理某個執照:
重定向:你先去了A局,A局的人說:「這個事情不歸我們管,去B局」,然後,你就從A退了出來,自己乘車去了B局。
轉發:你先去了A局,A局看了以後,知道這個事情其實應該B局來管,但是他沒有把你退回來,而是讓你坐一會兒,自己到後面辦公室聯系了B的人,讓他們辦好後,送了過來。