2013-02-20 1 views
0

В чем разница между localhost/user/user123, localhost/user?user=user123 и localhost/?user=user123?Чем отличается сервлет URL-адрес и параметр?

Как получить параметр user123 с URL-адресом localhost/user/user123 в сервлет?

Заранее спасибо

+1

Чем отличается от яблока и смерти звезды? Хотя, если каждый наносится на бумагу, ветер не удаляет ее, яблоко не является звездой смерти, и наоборот. То же самое относится и к вашему вопросу. Мы просто не используем пути для того, для чего вы хотите его использовать. Путь считается семантически иным, если он имеет одни и те же части, но в другом порядке это не соответствует параметрам. – ppeterka

+0

Я настоятельно предлагаю вам [это] (http://www.jpalace.org/docs/tutorials/jee/servlets_8.html) учебник. Вам это действительно нужно. –

+0

Это немного грубо. Попробуйте указать его на страницу, описывающую параметры пути и параметры запроса, которые все, что ему действительно нужно. В приведенном выше руководстве это страница 8 из 15. – DSoa

ответ

3

Вы можете проанализировать объект getPathInfo() объекта HttpServletRequest.

образец кода

String urlPath = request.getPathInfo(); 

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

Спасибо. Он работает :) – Alan

+0

@Alan: Пожалуйста, отметьте ответ как принятый. – Sudhakar

0

локальных/пользователь/user123 выглядит как RESTful способ определения ресурса.

Два других нет, я думаю.

0

Все они доступны от Servlet API. Проверьте HttpServletRequest, вы можете получить доступ ко всей информации оттуда.

Фактические значения могут отличаться, как был развернут ваш WebApp, но обычно

  • localhost является Context Path
  • струнный после того, как сервлетов РАТН
  • параметры после ? является запрос String - вы должны разобрать его, если вы хотите использовать
0
  • localhost/user/user123 - этот URL будет обрабатываться по шаблону /user/user123
  • localhost/user?user=user123 - этот URL будет обрабатываться по шаблону /user с user набора параметров для user123 (для запроса GET)
  • localhost/?user=user123 - этот URL будет обрабатываться по шаблону / с user параметр установлен в user123 (опять же, для ГЭТ)

Я не знаю, как получить user123 из URL localhost/user/user123 с чистыми сервлеты, но это довольно легко с фреймворков MVC. Спринг пример:

@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

0

Обычно вы передаете параметры, такие как

/localhost/Servlet?parameter1=one 

или для JSP

/localhost/mypage.jsp?parameter1=one 

В сервлета вы можете получить доступ к параметрам с помощью объекта запроса. Так в целом, как это:

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

Вот некоторые детали на getParameter для HttpServletRequest

Надеется, что это помогает.

+0

Спасибо и отметили :) – Alan

Смежные вопросы