JSP和HTML和JS - 双引号嵌套问题解决方案(不断完善中)

本文介绍了在JSP中遇到的双引号嵌套导致的错误,该错误在Tomcat 6.0及以上版本升级后出现。错误主要发生在jsp:param的value属性中,当双引号内再包含双引号时触发。解决方法包括使用转义字符"或者调整字符串的引用方式。同样的问题也可能出现在HTML和JS中。

JSP中:

类似如<jsp:param name="name" value="<%=request.getParameter("name")%>"/>中的value="",会导致以下报错信息:

Attribute value request.getParameter("name") is quoted with " which must be escaped when used within the value

属性值的request.getParameter("name")的被引用为"值的范围内使用时,必须进行转义-(来自谷歌翻译)

1.错误常发生的位置

value="<%=request.getParameter("name")%>"

2.错误产生的原因

因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。

3.解决办法

我第一反应,觉得应该是value中""不能再嵌套"",尝试做如下修改:

<jsp:param name="name" value="<%=request.getParameter('name')%>"/> - 可以

然后这样也可以,就是利用"\"转义字符,如:

<jsp:param name="name" value="<%=request.getParameter(\"name\")%>"/> - 可以<span style="display: none; width: 0px; height: 0px;" id="transmark"></span>
<jsp:param name="name" value="<%=request.getParameter("name")%>"/> - 可以

HTML中:

<html>
  <body>
    onclick="alert("OK")"<input type="button" value="失败" onclick="alert("OK")" /><br />
    onclick='alert('OK')'<input type="button" value="失败" onclick='alert('OK')' /><br />
    onclick="alert('OK')"<input type="button" value="成功" onclick="alert('OK')" /><br />
    onclick='alert("OK")'<input type="button" value="成功" onclick='alert("OK")' /><br />
    onclick="alert(\"OK\")"<input type="button" value="失败" onclick="alert(\"OK\")" /><br />
    onclick="alert("OK")"<input type="button" value="成功" onclick="alert("OK")" /><br />
    onclick="alert("OK")"<input type="button" value="失败" onclick="alert("OK")" /><br />
    onclick=alert("OK")<input type="button" value="成功" onclick=alert("OK") /><br />
   </body>
</html>

JS中:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值