В чем разница между localhost/user/user123
, localhost/user?user=user123
и localhost/?user=user123
?Чем отличается сервлет URL-адрес и параметр?
Как получить параметр user123
с URL-адресом localhost/user/user123
в сервлет?
Заранее спасибо
В чем разница между localhost/user/user123
, localhost/user?user=user123
и localhost/?user=user123
?Чем отличается сервлет URL-адрес и параметр?
Как получить параметр user123
с URL-адресом localhost/user/user123
в сервлет?
Заранее спасибо
Вы можете проанализировать объект getPathInfo() объекта HttpServletRequest.
образец кода
String urlPath = request.getPathInfo();
System.out.println("" + urlPath.substring(urlPath.lastIndexOf("/"), urlPath.length()- 1));
локальных/пользователь/user123 выглядит как RESTful способ определения ресурса.
Два других нет, я думаю.
Все они доступны от Servlet API. Проверьте HttpServletRequest, вы можете получить доступ ко всей информации оттуда.
Фактические значения могут отличаться, как был развернут ваш WebApp, но обычно
localhost
является Context Path?
является запрос String - вы должны разобрать его, если вы хотите использовать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
}
}
Получите это, спасибо :) – Alan
Обычно вы передаете параметры, такие как
/localhost/Servlet?parameter1=one
или для JSP
/localhost/mypage.jsp?parameter1=one
В сервлета вы можете получить доступ к параметрам с помощью объекта запроса. Так в целом, как это:
String parameter1 = request.getParameter("parameter1");
Вот некоторые детали на getParameter для HttpServletRequest
Надеется, что это помогает.
Спасибо и отметили :) – Alan
Чем отличается от яблока и смерти звезды? Хотя, если каждый наносится на бумагу, ветер не удаляет ее, яблоко не является звездой смерти, и наоборот. То же самое относится и к вашему вопросу. Мы просто не используем пути для того, для чего вы хотите его использовать. Путь считается семантически иным, если он имеет одни и те же части, но в другом порядке это не соответствует параметрам. – ppeterka
Я настоятельно предлагаю вам [это] (http://www.jpalace.org/docs/tutorials/jee/servlets_8.html) учебник. Вам это действительно нужно. –
Это немного грубо. Попробуйте указать его на страницу, описывающую параметры пути и параметры запроса, которые все, что ему действительно нужно. В приведенном выше руководстве это страница 8 из 15. – DSoa