JSP中js传递和解析URL参数以及中文转码和解码问题

  1.传递参数:

  

复制代码 代码如下:

  var pmt = 'sensor='+ encodeURI(encodeURI(sensor))+'&device='+encodeURI(encodeURI(device))+'&instrument=';

  pmt += encodeURI(encodeURI(instrument))+'&n='+n+'&addDate='+addDate;

  top.location.href = 'jsp/print/diagnosticAnaPrint.jsp?'+pmt;

  2.接收和解析参数

  

复制代码 代码如下:

  //获取URL参数

  function GetRequest() {

  var url = location.search; //获取url中"?"符后的字串

  var theRequest = new Object();

  if (url.indexOf("?") != -1) {

  var str = url.substr(1);

  strs = str.split("&");

  for(var i = 0; i < strs.length; i ++) {

  theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);

  }

  }

  return theRequest;

  }

  var sensor;//测点

  sensor = decodeURI(decodeURI(Request['sensor']));

  3.参考内容:

  方法一:正则分析法

  

复制代码 代码如下:

  function getQueryString(name) {

  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

  var r = window.location.search.substr(1).match(reg);

  if (r != null) return unescape(r[2]); return null;

  }

  这样调用:

  alert(GetQueryString("参数名1"));

  alert(GetQueryString("参数名2"));

  alert(GetQueryString("参数名3"));

  方法二:

  

复制代码 代码如下:

  <span style="font-size: 16px;"><Script language="javascript">

  function GetRequest() {

  var url = location.search; //获取url中"?"符后的字串

  var theRequest = new Object();

  if (url.indexOf("?") != -1) {

  var str = url.substr(1);

  strs = str.split("&");

  for(var i = 0; i < strs.length; i ++) {

  theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);

  }

  }

  return theRequest;

  }

  </Script></span>

  这样调用:

  <Script language="javascript">

  var Request = new Object();

  Request = GetRequest();

  var 参数1,参数2,参数3,参数N;

  参数1 = Request['参数1'];

  参数2 = Request['参数2'];

  参数3 = Request['参数3'];

  参数N = Request['参数N'];

  </Script>