用“+”传递字符串从jsp到servlet

时间:2013-09-26 14:13:34

标签: java jsp servlets

我正在传递一个包含加号(+)的字符串,从jsp页面到servlet,但在servlet中,字符串有空格而不是“+”。

JSP代码:

     var data = {Certificate:"KgAwIBAgIQQ+1b5xQKgN0HfjIAPy+vdjANBg",Id:10043};
     $.ajax({
           type: "POST",
           url: "Assinatura",
           data: 'signStart=' + JSON.stringify(data)
       });

Servlet代码:

request.getParameter("signStart"); //KgAwIBAgIQQ 1b5xQKgN0HfjIAPy vdjANBg

我知道我可以替换服务器端的空间,但是如果有更好的解决方案就会徘徊。

2 个答案:

答案 0 :(得分:5)

通过URL

时,需要对“+”等字符进行编码

答案 1 :(得分:1)

您需要在将字符串传递给ajax请求中的Servlet时对其进行编码。您可以使用encodeURIComponent

$.ajax({
    type: "POST",
    url: "Assinatura",
    data: 'signStart=' + encodeURIComponent(JSON.stringify(data))
});

或者您可以将data作为Object传递,而不是String:

data: {'signStart': JSON.stringify(data)}