1

我在隐藏变量中设置包含特殊字符、数字、字母等混合的 notes(String) notesValue,并打开一个新的 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 &';>/...”

我收到的nextPage.jsp是:新笔记\

这是怎么回事 ?

4

2 回答 2

1

编码string result

encodeURIComponent(document.forms[0].notesValue.value);

无需添加任何plugin.It 内置function.

于 2013-05-09T05:56:32.623 回答
1

当您使用此方法发送数据时:

nextPage.jsp?notesValue='+document.forms[0].notesValue.value;

当您使用 URL 附加数据时,您正在使用GET发送数据的方法。但是有很多特殊字符在 URL 中都有特殊的含义(如&, >, <, ;, 等)

当这些字符没有在 URL 中发挥其特殊作用时,需要对它们进行编码

因此,如果您需要将它们作为值发送,则需要先对它们进行编码,以免它们不被视为特殊的 URL 字符。

这是 URL 字符编码的列表

您可以使用POST方法来避免这种情况。

另请阅读: 如何在 javascript 中编码 URL

于 2013-05-09T05:57:11.550 回答