2015-11-17 131 views
2

我如何使用新澤西@PathParameter一個URL獲得片段(哈希值「#」)?獲取片段(哈希值「#」)

@Path("Step2") 

public class AdResource { 

@GET 
@Produces(MediaType.APPLICATION_JSON) 
@Path("/{password:.+}/") 
public String doResc(@PathParam("password") String pwd){ 
    System.out.println(pwd); 
} 

我的網址是http://localhost:8080/Sample/webapi/Step2/[email protected]#

但密碼會顯示 「密碼@ 12」 僅哈希(#)缺少..

+0

那麼爲什麼URL的密碼部分呢? –

+0

@anthony這是我的示例程序...密碼或任何其他值的一部分url –

回答

1

嘗試編碼/解碼的URL。 的JavaScript: encodeURI(uri)

那麼它在Java中使用URLDecoder

+0

plz給我舉例..am新鮮 –

+0

@Mohana你知道JavaScript嗎?或者你直接從瀏覽器輸入該網址 –

0

URL的區段部分永遠不會發送到服務器,這樣你就不能讓它這樣的解碼。

訪問它的唯一方法是通過像javascript這樣的客戶端技術。然後,在客戶端,您可以對其執行不同的操作,例如請求新內容。

編輯:剛纔注意到你在你的實際值有一個哈希值,所以它並不意味着是一個片段。在這種情況下,它需要在發送前進行編碼。 URLEncoding是這樣做的正確方法(如其他答案所示)。

注意還存在在URL發送密碼,比如它會被存儲在不同的訪問日誌等問題,這將是瀏覽器URL歷史的一部分等。通常你不應該把它的方式。