如何使用 JSP 从 URL 获取参数

2022-08-31 06:09:18

在 JSP 中,如何从 URL 获取参数?

例如,我有一个URL
,我想得到5。

是否有 request.getAttribute( “accountID” ) 像会话或类似的东西一样?www.somesite.com/Transaction_List.jsp?accountID=5


答案 1

关于统一表达式语言隐式对象Java EE 5 教程写道:

隐式对象

JSP 表达式语言定义了一组隐式对象:

  • pageContext:JSP 页的上下文。提供对各种对象的访问,包括:
    • servletContext:JSP 页面的 servlet 和同一应用程序中包含的任何 Web 组件的上下文。请参见访问 Web 上下文。
    • session:客户端的会话对象。请参见维护客户端状态。
    • 请求:触发 JSP 页执行的请求。请参阅从请求中获取信息
    • response:JSP 页返回的响应。请参见构造响应。
  • 此外,还提供了几个隐式对象,允许轻松访问以下对象:
    • param:将请求参数名称映射到单个值
    • paramValues:将请求参数名称映射到值数组
    • header:将请求标头名称映射到单个值
    • headerValues:将请求标头名称映射到值数组
    • cookie:将 Cookie 名称映射到单个 Cookie
    • initParam:将上下文初始化参数名称映射到单个值
  • 最后,有些对象允许访问使用作用域对象中所述的各种作用域变量。
    • pageScope:将页面范围的变量名称映射到其值
    • requestScope:将请求范围的变量名称映射到其值
    • sessionScope:将会话范围的变量名称映射到其值
    • applicationScope:将应用程序范围的变量名称映射到其值

有趣的部分是粗体:)

因此,要回答您的问题,您应该能够像这样访问它(使用EL):

${param.accountID}

或者,使用 JSP 脚本(不推荐):

<%
    String accountId = request.getParameter("accountID");
%>

答案 2

在 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>!

如果未在查询字符串上指定 name,则输出将为:

Hello <b>null</b>!

此示例使用脚本小工具中查询参数的值:

<%
    if (request.getParameter("name") == null) {
        out.println("Please enter your name.");
    } else {
        out.println("Hello <b>"+request. getParameter("name")+"</b>!");
    }
%>