2012-02-12 93 views
0

點擊超級鏈接後,如何將一個從JSP頁面中的bean中獲取的對象發送給Servlet?如何通過超鏈接將對象從JSP發送到Servlet?

像...

... 
<td align="center"><% if(j.getClubActual().isIsResource()){ request.setAttribute("equipo", j.getClubActual());%> 
<a href="teamServlet" type="submit" target="_blank"><%= j.getClubActual().getNombre()%></a><%}%> 
</td> 
... 

但是,當我試圖恢復它在teamServlet,請求對象是空的。

在此先感謝。

回答

0

當HTTP請求的關聯HTTP響應完成發送數據(讀取:由JSP生成的HTML頁面)時,HTTP請求的生存期結束。點擊一個鏈接將創建一個全新的HTTP請求,它根本不包含任何以前的請求的屬性。

您需要發送有問題的Java對象的唯一標識符作爲請求參數。最終,HTML必須結束了,基本是這樣的:

<a href="teamServlet?clubId=123">link</a> 

在servlet中,你可以得到請求參數如下:

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

您可以使用此值,以重新獲得對Java對象與某些數據存儲中的給定ID關聯。

Club club = clubService.find(Long.valueOf(clubId)); 
// ... 
+0

但是發送的對象作爲請求參數,你從不過,如果你想使用POST方法來隱藏參數的Servlet調用的doGet,我怎麼能這樣做呢? – 2012-02-12 19:15:17

+0

改用''和''來使用'

post>>''。請記住,這違反了searchbots的可搜索性和最終用戶的可收藏性。 – BalusC 2012-02-12 19:21:30

+0

對不起,您的意思是什麼會打破searchbots和書籤的可爬行性?我現在正在學習Jave EE,並且我是一個新手... – 2012-02-12 20:30:55

1

你試圖發送什麼對象?

如果你想「發送」對象,我認爲你最安全的選擇是使用HTTP會話來做到這一點。你不能發送超鏈接到servlet的「objects」(或bean)。您通常只能以字符串的形式發送參數值。