转发与重定向的区别,特点
生活随笔
收集整理的這篇文章主要介紹了
转发与重定向的区别,特点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求, 而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用 重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器 還得發出一個新的請求。同時,由于重定向方式產生了一個新的請求,所以經過一次重定向后,request內的對象將無法使用。怎么選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由于在 轉發之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選 擇轉發。 轉發和重定向的區別 不要僅僅為了把變量傳到下一個頁面而使用session作用域,那會無故增大變量的作用域,轉發也許可以幫助你解決這個問題。 重定向:以前的request中存放的變量全部失效,并進入一個新的request作用域。 轉發:以前的request中存放的變量不會失效,就像把兩個頁面拼到了一起。來自:https://zhidao.baidu.com/question/31696868.html
?
重定向:
int i=0;HttpSession session = request.getSession();if(request.getParameterValues("mail") == null){session.setAttribute("num",i);response.sendRedirect("index.jsp");}else{String[] params = request.getParameterValues("mail");for(String t:params){i++;}session.setAttribute("num",i);response.sendRedirect("index.jsp");}這段代碼是獲取到提交名字為mail的變量的值,如果沒有值,則重定向到主頁,并將值0帶入到重定向的jsp頁面.以此來判斷是否選中了頁面中那些數據!
轉發:
request.getRequestDispatcher("login.jsp").forward(request, response);
轉載于:https://my.oschina.net/qkmc/blog/778264
總結
以上是生活随笔為你收集整理的转发与重定向的区别,特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vmware中的Ubuntu安装ssh全
- 下一篇: 防火墙未开启导致通过redis篡改.ss