繁体   English   中英

如何将两个值传递给Java servlet?

[英]How can I pass two values to a Java servlet?

我正在开发一个具有servlet来显示二进制图像的JSF应用程序。 我有一个参数,但想传递两个参数。 它似乎只获得第一个参数。 我的映射如下所示。

<servlet>
    <servlet-name>imageServlet</servlet-name>
    <servlet-class>com.myapp.system.ImageServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>imageServlet</servlet-name>
    <url-pattern>/image/*</url-pattern>
</servlet-mapping>

当我调用servlet时,它看起来像这样

<p:graphicImage value="image?app=avatar?id=#{bean.imgId}" />

在我的servlet中,我得到像这样的参数

 String id = request.getParameter("id");
 String app = request.getParameter("app");

如果我输出应用程序字符串,它将显示此内容

 avatar?id=166

如何允许servlet url-patter接受两个值,并能够使用getParameter方法解析它们。 谢谢。

JSP标记应写为:

<p:graphicImage value="image?app=avatar&amp;id=#{bean.imgId}" />

URL的查询部分中的参数应以'&'而不是'?'分隔。

(您可以忽略这一点,但是您将无法使用ServletRequest.getParameter(String)来检索参数值。相反,您必须使用ServletRequest.getQueryString()并自己解析各个参数。)

用于编码URL参数的格式是键-值对与符号(分离& ):

<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />

除第一个参数外,在所有参数之前使用与号:

<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />

&而不是第二个?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM