2013-02-08 37 views
0

我的servlet需要接收2個參數才能響應。如何創建一個帶參數的servlet並在結尾處使用「/」?

我最喜歡的解決方案(但它並不在我的環境中工作):

http://domain.com/?param1=something&param2=anything 

,因爲:我需要一個URL以「/」結尾的另一個應用程序。但是我不能創建一個接受像「http://domain.com/?param1=something&param2=anything/」< < - /最後的URL的servlet。

我的第二個解決方案是: http://domain.com/param1/param2/ 我可以用「/」分割請求的URL,我有我的2個參數。但它不是那麼好..

有沒有更好的方式來通過2個參數,並有一個以「/」結尾的網址?

回答

1

我認爲這是不可能的。正如它在HTTP RFC 「http:」「//」host [「:」port] [abs_path [「?」查詢]] 第一個「?」有查詢部分。所以,在你的榜樣 http://domain.com/?param1=something&param2=anything/ 這意味着param2的值是什麼/(與最終斜槓)

當然,你可以結合你的servlet/*的url-pattern和處理在servlet使用ServletRequest.getParameter參數()。但是,不要忘記,你的參數2將與/

1

RFC 3986, section 3.3結束了,有可能一組參數分配給每個路徑段像這樣:

http://domain.com/path;param1=value1;param2=value2/subpath/subsubpath/ 

所以,你可以有參數,而不查詢部分。

但不足之處是:

  • 你想達到什麼是mabye不是預期的情況下,使用該功能。
  • 除查詢參數之外,段參數不支持API。所以你必須自己解析參數。
相關問題