网址编码&解码参数和读取参数

时间:2017-03-06 13:56:28

标签: java url-encoding

我成功编码&解码url参数但是如何在解码后得到参数?我将所有查询字符串编码为参数的原因只是为了防止用户更改地址栏上的参数。

例如

第A页

  function fnlink()
    {
        param1 = encodeURIComponent("INSCODE=91&NAME=LEE&EMAIL=abc");
    url = "/home/test/test2.jsp?"+param1;

    location.href= url; 
    }

Page B

url:http://localhost:9080/home/test/test2.jsp?INSCODE%3D91%26NAME%3DLEE%26EMAIL%3Dabc

1 个答案:

答案 0 :(得分:1)

您不应使用encodeURIComponent对整个参数字符串"INSCODE=91&NAME=LEE&EMAIL=abc"进行编码。

每个参数都应单独编码。 使用Javascript函数like this在查询字符串中添加参数:

/**
* Add a URL parameter 
* @param {url}   string  url 
* @param {param} string  the key to set
* @param {value} string  value 
*/
var addParam = function(url, param, value) {
   param = encodeURIComponent(param);
   var a = document.createElement('a');
   param += (value ? "=" + encodeURIComponent(value) : ""); 
   a.href = url;
   a.search += (a.search ? "&" : "") + param;
   return a.href;
}