我在隐藏变量notesValue
中设置包含特殊字符,数字,字母等混合的notes(String),并打开一个新的jsp(nextPage)。
var Url='<%=request.getContextPath()%>/nextPage.jsp?notesValue='+document.forms[0].notesValue.value;
var Bars = 'directories=no, location=no,menubar=no,status=no,titlebar=no';
var Options='scrollbar=yes,width=350,height=200,resizable=no';
var Features=Bars+' '+Options;
alert("Url being sent ---> "+Url);
var Win=open(Url,'Doc5',Features);
在nextPage.jsp方面,我正在做:
String notes = request.getParameter("notesValue");
这里只有纯文本,所有特殊字符都消失了。
例如:我设置的notesValue是:“New Notes&amp;';&gt; / ...”
我在nextPage.jsp
收到的是:新笔记\
发生了什么事?
答案 0 :(得分:1)
对string result
encodeURIComponent(document.forms[0].notesValue.value);
无需添加任何plugin
。内置function
。
答案 1 :(得分:1)
使用此方法发送数据时:
nextPage.jsp?notesValue='+document.forms[0].notesValue.value;
当您使用URL附加数据时,您正在使用GET
方法发送数据。但是,有许多特殊字符在网址中具有特殊含义(例如&
,>
,<
,;
等。
如果这些字符未在URL中的特殊角色中使用,则需要对其进行编码
因此,如果您需要将它们作为值发送,则需要先对它们进行编码,以免它们被视为特殊的URL字符。
Here's a list of URL character encoding
您可以使用POST
方法来避免这种情况。