jsp中重定向網頁有哪些方法,jsp頁面重定向

本文目錄一覽:

JSP如何實現網頁重定向

重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽仆飯得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。轉發和重定向的區別不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。正文開始:先是看上去不同,他們的調用分別如下:request.getRequestDispatcher(“apage.jsp”).forward(request response);//轉發到apage.jspresponse.sendRedirect(“apage.jsp”);//重定向到apage.jsp在jsp頁面中你也會看到通過下面的方式實現轉發:提到轉發和重定向就不得不提到request作用域。很多初學者都知道當我們提交一個表單時,就創建了一個新的請求。實際上,當我們點擊一個鏈接時,也創建了一個新的請求。那麼一個請求的作用於到底有多大呢?例如:在頁面a.jsp中有一個鏈接這是指向b的一個鏈接,而且還帶了一個參數。當我們點擊這個連接的時候,就產生了一個請求,為了明確起見,我們把它叫做requestA-B。現在,在b.jsp頁面中我們就可以從這個請求中獲取信息了。在b.jsp中你可以寫入out.println(request.getParameter(“id”))進行測試。下面更複雜一點,我們在b.jsp頁面中增加下面的語句:request.setAttribute(“name””funcreal”);out.println(request.getAttriblute(“name”));//成功顯示了name變數的值。現在在b.jsp中再增加一個鏈接:這是指向c的一個鏈接,而且還帶了一個參數當我們點擊這個連接的時候,將產生一個新的請求,這時requestA-B也就安息了,新的請求叫做requestB-C。同樣的道理,在c.jsp中,我們可以訪問到的變數只有age,因為id,name這兩個變數都屬於requestA-B,此時他已經不存在了。下面是源代碼:a.jsp指向b.jsp,而且還帶了一個參數id=1。requestA-B現在誕生了b.jsprequestA-B已經結束了。指向c.jsp,而且還帶了一個參數age=23c.jspd.jsprequestB-C的魔爪已經伸到了d.jsp頁面運行程序,你會發現c頁面中的內容沒有顯示出來,因為forward是自動執行的,地址欄中雖然是c.jsp但實際上,但瀏覽器中顯示的已經是d.jsp的內容了,而且看到了從b.jsp傳過來的參數。你可以簡單得這樣理解:轉發,就是延長了requestB-C的作用域,,這一句話實際上是把c.jsp和d.jsp粘到了一起,他們就像是在一個頁面中。

怎樣進行網頁重定向

網頁重定向就是將用戶請求的網頁轉向其它位置。即當用戶訪問某個網頁A時,網頁A自動定向到網頁B,這樣用戶實際看到的就是網頁B了。

網頁重定向在網站開發中經常使用,如:

1) 公司的域名進行了變更,為了用戶也能通過原有域名進行訪問,就得使用重定向。常見的購物網站,好多都進行了域名變更,但原域名仍保留,輸入原域名後,自動定向到新的域名。

2) 在用戶登錄頁面A中,輸入完用戶名密碼後,點擊登錄時,表單提交到驗證網頁B,在服務端進行驗證通過後,會自動定向到用戶信息網頁C。

下面介紹幾種網頁重定向的幾種常用方法。

通過javascript腳本進行重定向

1

將a.html提交到b.html,b.html重定向到c.html。

(a.html相當於用戶登錄網頁,b.html相當於驗證用戶信息網頁,c.html相當於重定向的網頁)

這裡演示的僅是重定向的功能,因此代碼儘可能簡單。

a.html內容如下:

html

head

metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8″ /

/head

body

form action=”b.html”method=”post”

input name = “submit”type=”submit” value=”提交”

/form

/body

/html

預覽圖如下:

2

b.html內容如下:

html

head

metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8″ /

scripttype=”text/javascript”

function load()

{

window.location =”c.html”;

}

/script

/head

body onload = “load()”

驗證通過,現在進入用戶信息頁面。

/body

/html

3

c.html內容如下:

html

head

metahttp-equiv=”Content-Type” content=”text/html;charset=utf-8″ /

/head

body

歡迎光臨!

/body

/html

預覽圖如下:

4

重點在b.html,重定向的代碼就在其中的javascript腳本load()函數中。在b網頁載入完畢後,會調用此函數,此函數的重定向代碼就一句:

window.location = “c.html”;

怎麼樣?是不是很簡單。

如果想定向前其它網頁,如百度首頁,可以這麼寫:

window.location=」」;

注意「http://」不能少。

END

通過php代碼進行重定向

1

因為涉及到php代碼的執行,因此需要先做一個網站,這裡假定網站已做好。

a.html中的代碼很簡單,只需將上面的form中的action改為指定b.php而不是b.html即可。

b.php的代碼如下:

?phpheader(“Location:c.html”); ?

要在本地網站進行演示,可以將a.html、b.php、c.html拷貝到你的網站目錄下,在瀏覽器地址欄中輸入: localhost/a.html進行操作。

END

通過asp.net代碼進行重定向

1

代碼和php類似,因要先做一個支持asp.net運行的網站,將a.html中的action指定b.aspx,b.aspx中的代碼如下:

% Server.Transfer(“c.html”); %

END

通過jsp代碼進行重定向

代碼和php類似,因要先做一個支持jsp運行的網站,重定向代碼如下:

jsp:forward page=”c.html”

JSP如何實現網頁重定向?

jsp實現頁面的重定向,使用的是response.sendRedirect(“a.jsp”);實現頁面重定向到a.jsp這個頁面。

分為兩種寫法:

1、如果實在jsp頁面中寫代碼的話,將response.sendRedirect(“a.jsp”);放在%%裡面就行了,即:%response.sendRedirect(“a.jsp”);%

2、如果是在java文件(如servlet)中寫代碼的話,只需寫response.sendRedirect(“a.jsp”);就行了。

接下來簡單說說頁面的轉發(forward)與重定向(sendRedirect)的區別:

重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。

轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。

原創文章,作者:FZPFT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/324458.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FZPFT的頭像FZPFT
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進位的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進位。 一、AES加密介紹 AE…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • 用法介紹Python集合update方法

    Python集合(set)update()方法是Python的一種集合操作方法,用於將多個集合合併為一個集合。本篇文章將從以下幾個方面進行詳細闡述: 一、參數的含義和用法 Pyth…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29

發表回復

登錄後才能評論