gpt4 book ai didi

jsp - 如何使用get方法通过URL将包含双引号的字符串从jsp传递到servlet

转载 作者:行者123 更新时间:2023-12-04 14:40:24 32 4
gpt4 key购买 nike

我想将一个jsp参数设置为一个可能包含特殊符号的属性值,然后使用一个形式GET提交以将参数传递给 servlet Controller 。例如参数为:

<input type="hidden" name="searchTerms" value="${sessionScope.combTerms}"></input>

我注意到如果sessionScope.combTerms包含双引号,例如。 location:"LOC1" , Controller 只会收到 searchTerms 的值成为location:其中LOC1"消失了。我应该怎么做才能确保 sessionScope.combTerms 中的任何字符串?是否正确传递给 Controller ​​?提前致谢。

最佳答案

填充 HTML 输入值时,始终使用 fn:escapeXml() .它不仅会清除 HTML 实体中的值,这可能会使您的 HTML 格式不正确(引号表示属性值的结尾,这就是您的值丢失的原因),而且还会使您免于 XSS injection attack risks在重新显示用户控制的输入的地方。

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

<input type="hidden" name="searchTerms" value="${fn:escapeXml(sessionScope.combTerms)}">

不需要对其进行URLEncode。网络浏览器已经自动完成了。在值中使用 & 自己尝试。您会看到网络浏览器将其更改为 %26。网络浏览器还将注意解析 XML 实体,以便它们正确地出现在 URL 中。 IE。你在服务器端得到 ",而不是 "

关于jsp - 如何使用get方法通过URL将包含双引号的字符串从jsp传递到servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3360419/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com