Как получить параметры из URL с помощью JSP
в JSP как я могу получить параметры из URL?
например у меня есть URL www.somesite.com/Transaction_List.jsp?accountID=5
Я хочу получить 5.
есть запрос.getAttribute ("accountID") вроде есть для сессий или что-то подобное?
7 ответов:
в запросе GET параметры запроса берутся из строки запроса (данные, следующие за вопросительным знаком на URL-адресе). Например, URL http://hostname.com?p1=v1&p2=v2 содержит два параметра запроса - - p1 и p2. В запросе POST параметры запроса берутся как из строки запроса, так и из опубликованных данных, которые закодированы в теле запроса.
в этом примере показано, как включить значение параметра запроса в созданный вывод:
Hello <b><%= request.getParameter("name") %></b>!
если страница была доступна с URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
результат будет такой:
Hello <b>John Smith</b>!
если имя не указано в строке запроса, вывод будет:
Hello <b>null</b>!
в этом примере используется значение параметра запроса в скриптлет:
<% if (request.getParameter("name") == null) { out.println("Please enter your name."); } else { out.println("Hello <b>"+request. getParameter("name")+"</b>!"); } %>
о Скрытые Объекты на Унифицированный Язык Выражений на Java EE 5 Tutorial пишет:
Скрытые Объекты
язык выражений JSP определяет набор неявных объектов:
pageContext
: контекст для страницы JSP. Обеспечивает доступ к различным объектам, в том числе:
servletContext
: контекст для сервлета страницы JSP и любой веб-страницы компоненты, содержащиеся в том же приложении. См. раздел доступ к веб-контексту.session
: объект сеанса для клиента. См. Раздел Поддержание Состояния Клиента.request
: запрос, запускающий выполнение страницы JSP. Смотрите получение информации из запросов.response
: ответ, возвращенный страницей JSP. Увидеть Построении Ответов.- кроме того, несколько доступны неявные объекты, которые обеспечивают легкий доступ к следующим объектам:
param
: сопоставляет имя параметра запроса с одним значениемparamValues
: сопоставляет имя параметра запроса с массивом значенийheader
: сопоставляет имя заголовка запроса с одним значениемheaderValues
: сопоставляет имя заголовка запроса с массивом значенийcookie
: сопоставление имени файла cookie с одним кукиinitParam
: сопоставляет имя параметра инициализации контекста с одним значением- наконец, существуют объекты, которые позволяют получить доступ к различным переменным области, описанным в разделе использование объектов области.
pageScope
: сопоставляет имена переменных на странице с их значениямиrequestScope
: сопоставляет имена переменных в области запроса с их значениямиsessionScope
: сопоставляет имена переменных в области сеанса с их значенияapplicationScope
: сопоставляет имена переменных области применения с их значениямиинтересные части выделены жирным шрифтом :)
Итак, чтобы ответить на ваш вопрос, вы должны иметь доступ к нему следующим образом (используя EL):
${param.accountID}
или JSP Scriptlets (не рекомендуется):
<% String accountId = request.getParameter("accountID"); %>
Если я могу добавить комментарий здесь...
<c:out value="${param.accountID}"></c:out>
не работает для меня (он печатает 0).
вместо этого это работает:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
Это то, что вы ищете. Это часть API сервлета Java. См.http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html для получения дополнительной информации.
пример вы хотели удалить запись субъекта с его subject_id
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET) public ModelAndView delete(@PathVariable int subjectid) { subjectsDao.delete(subjectid); return new ModelAndView("redirect:/subject_setup"); }
и параметр будет использоваться для входа на ваш запрос
public int delete(int subjectid) { String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+""; return template.update(sql); }