在JSP中如何从URL获取参数?
例如,我有一个www.somesite.com/Transaction_List.jsp?accountID=5
我想要获得的URL 5.
是否有一个request.getAttribute("accountID")就像会话或类似的东西?
关于隐式对象中的统一表达式语言,在Java EE 5教程中写道:
隐含对象
JSP表达式语言定义了一组隐式对象:
pageContext
:JSP页面的上下文.提供对各种对象的访问,包括:
servletContext
:JSP页面的servlet的上下文以及同一应用程序中包含的任何Web组件.请参阅访问Web上下文.
session
:客户端的会话对象.请参阅维护客户端状态.
request
:触发JSP页面执行的请求.请参阅从请求获取信息.
response
:JSP页面返回的响应.请参阅构建响应.此外,还有几个隐式对象可以轻松访问以下对象:
param
:将请求参数名称映射到单个值
paramValues
:将请求参数名称映射到值数组
header
:将请求标头名称映射到单个值
headerValues
:将请求标头名称映射到值数组
cookie
:将Cookie名称映射到单个Cookie
initParam
:将上下文初始化参数名称映射到单个值最后,有些对象允许访问使用范围对象中描述的各种范围变量.
pageScope
:将页面范围的变量名称映射到其值
requestScope
:将请求范围的变量名称映射到其值
sessionScope
:将会话范围的变量名称映射到其值
applicationScope
:将应用程序范围的变量名称映射到其值
有趣的部分是粗体:)
所以,要回答你的问题,你应该能够像这样访问它(使用EL):
${param.accountID}
或者,使用JSP Scriptlets(不推荐):
<% String accountId = request.getParameter("accountID"); %>
在GET请求中,请求参数取自查询字符串(URL上问号后面的数据).例如,URL http://hostname.com?p1=v1&p2=v2包含两个请求参数--p1和p2.在POST请求中,请求参数来自查询字符串和在请求正文中编码的发布数据.
此示例演示如何在生成的输出中包含请求参数的值:
Hello <%= request.getParameter("name") %>!
如果使用URL访问页面:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
结果输出将是:
Hello John Smith!
如果未在查询字符串上指定name,则输出将为:
Hello null!
此示例使用scriptlet中的查询参数的值:
<% if (request.getParameter("name") == null) { out.println("Please enter your name."); } else { out.println("Hello "+request. getParameter("name")+"!"); } %>
使用EL(JSP表达式语言):
${param.accountID}
如果我可以在这里添加评论......
对我不起作用(打印0).
相反,这有效:
request.getParameter("accountID")
是你在找什么.这是Java Servlet API的一部分.有关更多信息,请参阅http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html.