2013-02-20 30 views
0

localhost/user/user123localhost/user?user=user123localhost/?user=user123有什麼區別?servlet url路徑和參數有什麼不同?

如何從servlet中的URL localhost/user/user123獲取參數user123

在此先感謝

+1

什麼是蘋果和殺星之間有什麼不同?雖然如果每張都放在紙上,風不會吹走它,但蘋果不是死星,反之亦然。這同樣適用於你的問題。我們只是不使用路徑來獲得你想要的路徑。 路徑被認爲是語義上不同的,如果它具有相同的部分,但按不同的順序,這對於參數來說並不正確。 – ppeterka 2013-02-20 13:19:53

+0

我強烈建議[this](http://www.jpalace.org/docs/tutorials/jee/servlets_8.html)教程給你。你真的需要它。 – 2013-02-20 14:23:39

+0

這有點苛刻。嘗試將他指向描述路徑信息和請求參數的頁面,這是他真正需要的。在上面的教程,它是第8頁15。 – DSoa 2014-07-24 21:52:46

回答

3

您可以從HttpServletRequest對象的getPathInfo()解析。

示例代碼

String urlPath = request.getPathInfo(); 

System.out.println("" + urlPath.substring(urlPath.lastIndexOf("/"), urlPath.length()- 1)); 
+0

謝謝。它的工作原理:) – Alan 2013-02-21 07:04:35

+0

@Alan:請將答案標記爲Accepted。 – Sudhakar 2013-02-21 08:54:34

0

本地主機/用戶/ user123看起來像一個RESTful方式標識資源。

其他兩個都不是,我想。

0

這些全部都可從訪問Servlet API。檢查HttpServletRequest,您可以從那裏訪問所有信息。

的實際值可能會有所不同您的web應用程序是如何部署的,但通常

  • localhost是上下文路徑
  • 後的字符串是servlet路徑
  • ?後的參數是查詢字符串 - 如果要使用,則必須解析它
0
  • localhost/user/user123 - 該URL將通過圖案處理/user/user123
  • localhost/user?user=user123 - 此URL將由圖案/user處理,與user參數設置爲user123(對於GET請求)
  • localhost/?user=user123 - 此URL將由圖案/user處理參數設置爲user123(同樣,對於GET)

我不知道如何與純servlet的檢索網址localhost/user/user123user123,但它與web框架很容易。彈簧例如:

@Controller 
@RequestMapping("/user") 
public class Controller { 
    @RequestMapping(value = "/{user}") 
    public String getUser((@PathVariable String user) { 
     //here variable "user" is available and set to "user123" in your case 
    } 
} 
+0

得到它,謝謝:) – Alan 2013-02-21 07:06:53

0

通常傳遞參數如

/localhost/Servlet?parameter1=one 

或用於JSP

/localhost/mypage.jsp?parameter1=one 

在可以通過使用請求對象訪問參數的servlet。所以一般是這樣的:

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

這裏是HttpServletRequest

希望這有助於上的getParameter一些細節。

+0

謝謝並注意到:) – Alan 2013-02-21 07:05:08