无法阅读'%' for request.getparameter()

时间:2014-06-19 19:46:38

标签: java jsp java-ee servlets

嗨我有一个来自超链接的超链接我正在调用一个servlet,并且还发送一个带有请求的参数但是当'%'附加文本然后显示空值。

Jsp代码

 <h1><a href="test11?val=100%">click</a></h1>

servlet代码

 String s=request.getParameter("val");
   out.print("this is a text"+s);

<h1><a href="test11?val=100">click</a></h1> 它工作正常,但当我添加&#39;%&#39;它打印为空。

2 个答案:

答案 0 :(得分:5)

要从URL获取%,您应该使用URLEncoded %25 的版本。因此,您将以<h1><a href="test11?val=100%25">click</a></h1>

结束 %中的{p> URL不仅仅是一个字符,也是URLEncoding中使用的percent-encoding的主要字符。网址的其他特殊字符为?&=

请尝试始终对您的网址进行编码,请在java中查看此链接:Java URL encoding of query string parameters以便执行此操作。

答案 1 :(得分:2)

由于您使用的是JSP,请尝试使用JSTL对URL进行编码。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<c:url value="/test11" var="url">
    <c:param name="val" value="100%" />
</c:url>

<a href="${url }">click</a>

详细了解JSP Standard Tag Library