hklemp,
O java-script é interpretado pelo seu browser. Um “artificio técnico” que muita gente usa é passar os parametros pelo metodo GET, com isso vc consegue pega-los no lado do java-script com o objeto location do java-script
Um exemplo:
vc tem um servlet que vai mandar parametros pruma pagina html que contem seu java-script.
parametros que vc quer passar : nome, idade
sua servlet : ControlServlet
seu html : pagJs.html
dentro da sua Servlet vc vai ter ter que redirecionar seus parametros pro html assim :
… codigo
<seu HttpServletResquest>.sendRedirect(“pagJs.html?nome=João da Silva&idade=22”);
… codigo
Já na pagina html, no objeto Window vc tem o “location” que contem a url da pagina atual. Pra pegar esse valor vc deve pegar o “location.href”.
Então, depois de submeter sua Servlet, no lado html vc tem
location.href=<servidor>pagJs.html?nome=João da Silva&idade=22
Como o protocolo http faz encode das suas requisições todos os caracteres especiais como espaços, acentos, pontos serão codificados.
sua location.href vai ser algo do genero:
location.href=<servidor>pagJs.html?nome=Jo%2ao%20da%20Silva&idade=22
Pra solucionar isso algum algoritmo de substituição. Em qq site de cgi vc encontra a tabela dos caracteres X códigos (Não vi muito bem mas talvez aquele código do Rafael Steil faça isso). Usando o java-script 1.5 (Internet Explorer 6 e Netscape 6) vc tem a função decodeURI(encodedURI) que faz este papel.
Depois de limpar a url vc terá de “catar” os parametros vindos.
algo do tipo:
url=pagJs.html?nome=Joao da Silva&idade=22
Em primeiro lugar vc substitue os “?” por “&” não lembro muito bem a sintaxe mas será parecido com isso.
er = /&/gi; //expressao regular
url = "pagJs.html&nome=Joao da Silva&idade=22" // String
var url2 = url.replace(er, "?");
E pra terminar vc usa a função split.
var arrayParms = new Array();
arrayParms = url2.split("&");
vc terá então:
arrayParms[0]="pagJs.html"
arrayParms[1]="nome=Joao da Silva"
arrayParms[2]="idade=22"
bom, é isso… espero ter ajudado. Essa é dos tempos que eu mexia com cgi em shell-script… hehe
[]´s
MedioCore