[英]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&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.