将加密字符串作为jsp参数从一个jsp传递给另一个

时间:2016-01-01 09:23:32

标签: java jsp encryption urlencode

我遇到了将加密字符串作为jsp参数发送到其他jsp的问题。它有空格,/,+字母数字字符

这是我的加密字符串的样子

var dataString="lREsIY9bcUFi9hETEJijk2yePcXAymOA9v+fW1MpTjJjZtuQJmAfyPzLJWjXM+9Qn6TC5dRBrU90KV/S9wmHw5Qpxo2DYmdjQtZlTwZWDoB1O+izeiBU90ZWJELSExFyHMSNVS5P/dnLw/+dp4O";

我在firbug的控制台中收到了这个错误:

  

处理错误! [object Object]

如果我传递一个普通的字符串,一切正常,我被重定向到jsp但不是上面的字符串。

以下是代码段, passOnData 是我在链接中作为参数传递的变量:

 if(passOnData!=""&&passOnData!=null){
                     $.ajax({
                         type: "POST",

                         dataType:"text",
                         contentType: "text/xml",
                         url:  "http://localhost:8000/secure/transaction.jsp?UserId=ABC&UserNo=110033&data="+encodeURIComponent(passOnData),
                         success: function(x) {

                         },
                         error: function( textStatus) {
                             console.log(' Error in processing! '+textStatus);
                         }
                     });

                    }

我的问题有解决办法吗?请帮助。

2 个答案:

答案 0 :(得分:3)

Urlencoding是您需要的魔力。 +将转换为空格(%20),否则会使您收到的数据变得混乱。

您可以将+替换为%2b或使用

进行正确的编码
 passOnData = URLEncoder.encode(passOnData);
发送前

网络安全的base64实现不会使用这些字符。

答案 1 :(得分:0)

你必须逃避特殊字符。使用Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘fit.gstatModel’ for signature ‘"data.frame", "formula", "RasterLayer"’ 方法