js in JSP passes and parses URL parameters as well as Chinese transcoding and decoding problems

  • 2020-06-12 10:16:34
  • OfStack

1. Pass parameters:
 
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. Receive and parse parameters
 
// To obtain URL parameter  
function GetRequest() { 
var url = location.search; // To obtain url In the "?" The string that follows  
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; / / point
sensor = decodeURI(decodeURI(Request['sensor']));
3. Reference Content:
Method 1: Canonical analysis
 
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; 
} 
 Call like this:  
alert(GetQueryString(" Parameter names 1")); 
alert(GetQueryString(" Parameter names 2")); 
alert(GetQueryString(" Parameter names 3")); 

Method 2:
 
<span style="font-size: 16px;"><Script language="javascript"> 
function GetRequest() { 
var url = location.search; // To obtain url In the "?" The string that follows  
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> 
 Call like this:   
<Script language="javascript"> 
var Request = new Object(); 
Request = GetRequest(); 
var  parameter 1, parameter 2, parameter 3, parameter N; 
 parameter 1 = Request[' parameter 1']; 
 parameter 2 = Request[' parameter 2']; 
 parameter 3 = Request[' parameter 3']; 
 parameter N = Request[' parameter N']; 
</Script> 

Related articles: