将表单中的 url 从页面传递到 servlet 会删除部分查询字符串
如果我在 JSP 上有一个像这样的表单:
<form action = "/myApp/myServlet?rssFeedURL=${rssFeedURL}' />" method = "post">
<input type = "button" value = "See data for this RSS feed."/>
</form>
我发现如果变量 ${rssFeedURL} 没有查询字符串,那么服务器会正确接收它,例如:
http://feeds.bbci.co.uk/news/rss.xml
但是如果存在查询字符串,例如:
http://news.google.com/news?ned=us&topic=m&output=rss
我希望它与“&”的编码有关特点。有人可以建议吗?
服务器仅接收:
http://news.google.com/news?ned=us
我的页面是 charset=UTF-8 编码的。
If I have a form on a JSP like this:
<form action = "/myApp/myServlet?rssFeedURL=${rssFeedURL}' />" method = "post">
<input type = "button" value = "See data for this RSS feed."/>
</form>
What I find is that if the variable ${rssFeedURL} has no query string, then the server receives it properly, e.g.:
http://feeds.bbci.co.uk/news/rss.xml
But if a query string exists, e.g.:
http://news.google.com/news?ned=us&topic=m&output=rss
I expect that it is to do with the encoding of the '&' character. Can anyone advise?
The server receives only:
http://news.google.com/news?ned=us
My pages are charset=UTF-8 encoded.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要对请求参数进行 URL 编码。否则它们将被解释为初始请求 URL 的一部分。
JSTL 为此提供了
。另一种方法是创建一个 EL 函数,该函数委托给
URLEncoder#encode()
。You need to URL-encode request parameters. Otherwise they will be interpreted as part of the initial request URL.
JSTL offers you the
<c:url>
for this.An alternative is to create an EL function which delegates to
URLEncoder#encode()
.