从请求中自动删除特殊字符

时间:2013-05-09 05:49:22

标签: java jsp request

我在隐藏变量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收到的是:新笔记\

发生了什么事?

2 个答案:

答案 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方法来避免这种情况。

另请阅读: How to encode URL in javascript