encodeURICOmponent在js中工作吗?

时间:2011-03-30 08:22:25

标签: jquery jsp

我有名字booksearch.js和admin.java的文件。我需要将uri的值从booksearch.js传递给admin.java。 uri的值具有特殊字符'+',所以我在booksearch.js中使用了encodeURIComponent。我在一个警告框中警告了uri,在encodeURIComponent之后,uri的值被正确编码。但是当我使用getParameter()函数将此编码值传递给admin.java时。 uri的值没有'+'符号。

我在这里做错了什么?

booksearch.js的代码是

    function editBook(uri, properties){
    var params = ""; 
    for (var property in properties[0])

        params += "&" + property + "=" + properties[0][property];

        alert("This is the uri "+uri);
     uri=encodeURIComponent(uri);

        alert("The new uri is "+uri);
$.ajax({
    url: "Admin?action=edit&uri=" + uri + params,
    dataType: "html",
    success: function(response){
        $("#output").append(response);
    }
});

  }

admin.java中的代码是

          if (action.equals("edit")) {
        String uri = request.getParameter("uri");

        System.out.println("this is the uri of the new book added "+uri);

输出

在uri的第一个警告框中,我得到了

这是C ++中的uri http://protege.stanford.edu/kb#BestSeller

新的uri在C ++中是http://protege.stanford.edu/kb#BestSeller

在getparameter之后

我得到输出为

这是在C

中添加http://protege.stanford.edu/kb#BestSeller的新书的用户

发生了什么事?

此致

阿奇纳。

1 个答案:

答案 0 :(得分:0)

你在这里做错了什么。 getParameter()只是将网址解码为正常格式。

如果您更想要原始(URL编码)查询字符串,请使用request.getQueryString()。您只需要自己在其他参数中解析它。