2016-04-15 59 views
-2

比方說,我得到了我的jsp網站刪除按鈕,其具有下面的代碼:JSP和Servlet解析參數

<a href="deleteMovie?movieID=${movie.movieID}"> 
<button type="button" class="btn btn-xs btn-danger"> 
<span class="glyphicon glyphicontrash" aria-hidden="true"></span> Delete </button></a> 

我們可以看到,每當我點擊我的刪除按鈕被轉發到網站

「deleteMovie?movieID = $ {} movie.movi​​eID」

我也有被映射到 「/ deleteMovie」,所以該servlet調用一個servlet。 這個servlet我有以下代碼中:

String movieID = request.getParameter("movieID"); 

你怎麼給我解釋一下,無論我寫的等號後面登錄href值,這個特定的文本內容在字符串movieID回來了? 例如,如果我這樣寫:

<a href="deleteMovie?movieID=Foo"> 

那麼字符串movieID將包含「富」。 但是爲什麼?爲什麼它從href解析movieID?

+0

究竟是什麼意外呢?你希望/期望會發生什麼? – 4castle

+0

@ 4castle我是Java服務器頁面的新手,所以對我來說很困惑。當我從輸入表單中獲取輸入表單的值時,可以設置輸入表單的名稱,並且可以通過servlet的名稱訪問它...但這很混亂?假設我想在請求中添加另一個值,我怎麼能這樣做呢? – Bajro

回答

1

在GET請求中,可以使用查詢字符串爲參數提供請求。查詢字符串是一個?,後跟名稱 - 值對,如movieID=Foo。在這種情況下,movieID的值是Foo。如果您想要多個名稱 - 值對,請在它們之間放置一個&

當您提交form時,它會爲您創建這些參數。所以,如果你提交此表:

<form method="GET" action="deleteMovie"> 
    <input type="hidden" name="movieID" value="Foo" /> 
    <input type="submit" /> 
</form> 

這將產生deleteMovie?movieID=Foo一個URL,然後把它關閉。

+0

非常感謝! 「&」是我一直在尋找的東西! 所以我剛剛學到了一些新東西,謝謝! 因此,將參數從jsp傳遞給另一個或傳遞給servlet的唯一方法是使用爲您工作或通過href傳遞參數的表單? – Bajro

+0

還有另外一種方法。你應該看看如何使用會話!這聽起來像它正是你想要的。:D它同樣存儲名稱 - 值對,但它們只能訪問服務器端和來自同一用戶的所有請求(在一定的時間內)。它們也很容易使用。 – 4castle

+1

如果你想要一些更長期的存儲。查找如何使用cookie。 – 4castle

1

也沒有什麼混亂的代碼以及如果這是你的網址

<a href="submitvalues?parameter1=value1&parameter2=value2"> 

然後parametes1 and parameter2 are parameter names和值分配給他們=體徵參數由& sign seperarted。 在servlet side如果您提供的correct parameter name 那麼你可以得到這些值

String param1 = request.getParameter("parameter1"); 
String param2 = request.getParameter("parameter2"); 

沒有孤單在這混亂。