1 - Primeiramente é preciso criar uma variavel de texto em javascript que irá representar o GET que vc vai passar pro seu Servlet. Eu uso essa função (Fica no script da minha JSP) :
<script>
var Campos
//Configure seus campos... Não esqueça de tratar radiobuttons e combos....
function setarCampos() {
campos = "name="+encodeURI(document.getElementById('name').value)
+"&rg="+encodeURI(document.getElementById('rg').value)
+"&cargo="+encodeURI(document.getElementById('cargo').value)
+"&dpto="+encodeURI(document.getElementById('dpto').value)
+"&ramal="+encodeURI(document.getElementById('ramal').value)
+"&cc="+encodeURI(document.getElementById('cc').value);
}
<script>
2 - Importar o Arquivo JS do ajax.. O que ele faz é identificar o navegador e criar um POST utilizando o GET setado na função anterior sem recarregar a página..
Crie um arquivo scriptAjax.js e jogue essas 2 funções la dentro....
function extraiScript(texto) {
//Função para que funcione as tags <script> utilizando o metodo ajax
//Powered by LionSoft do Brasil
var ini, pos_src, fim, codigo;
var objScript = null;
ini = texto.indexOf('<script', 0);
while (ini!=-1){
objScript = document.createElement("script");
pos_src = texto.indexOf(' src', ini)
ini = texto.indexOf('>', ini) + 1;
if (pos_src < ini && pos_src >=0) {
ini = pos_src + 4;
fim = texto.indexOf('.', ini)+4;
codigo = texto.substring(ini,fim);
codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("
3- No head do seu JSP coloque a função do passo 1 no script e também importe o scriptAjax.js
[code]<script type="text/javascript" src="scriptAjax.js"></script>
4- No botao de post vc vai usar a seguinte função
<input type="submit" name="postar" id="postar" value="Enviar Solicitação" onclick="setarCampos();ajaxFunction('PrjInformat/DocTreatment',campos,'div_resultado','1');return false;" />
O que isso faz??? Simples:
-primeiro a gente seta a variavel que conterá o GET para o servlet com a função setarCampos();
-Depois a gente chama a função do JS que vai enviar o POST por ajax...passando como parametro
1:PrjInformat/DocTreatment - Caminho do Servlet
2:o texto de GET (definido na função setarCampos())
3:div_resultado - É a div onde a função vai colocar a resposta que vc passar.. Por exemplo... se vc queria salvar um registro no banco no seu servlet, porém o registro já existia... No servlet vc simplesmente pode fazer out.print("O registro já existe") e a função irá inserir esse valor dentro da DIV que vc infomar..
4:Se vc informar o valor 1 quer dizer que o retorno do servlet pode ser um script.. por exemplo... caso após o processamento do servlet vc queira que a janela seja fechada... out.print("");
Resumindo.. Isso não vai recarregar sua página e vc pode fazer aplicações mais agradáveis para o usuário...
Fique atento apenas que o metodo comum de redirecionamento de página do Servlet não vai funcionar com AJAX... pois vc está redirecionando a solicitação do AJAX e não a página que o usuário está atualmente...
Você pode sim redirecionar o ajax para outros servlets, sem problemas... más se quiser redirecionar a página que o usuário está visualizando vai ter que mandar de volta um script...
Boa sorte e qualquer coisa grita ai...","").replace("
3- No head do seu JSP coloque a função do passo 1 no script e também importe o scriptAjax.js
<script type="text/javascript" src="scriptAjax.js"></script>
4- No botao de post vc vai usar a seguinte função
<input type="submit" name="postar" id="postar" value="Enviar Solicitação" onclick="setarCampos();ajaxFunction('PrjInformat/DocTreatment',campos,'div_resultado','1');return false;" />
O que isso faz??? Simples:
-primeiro a gente seta a variavel que conterá o GET para o servlet com a função setarCampos();
-Depois a gente chama a função do JS que vai enviar o POST por ajax...passando como parametro
1:PrjInformat/DocTreatment - Caminho do Servlet
2:o texto de GET (definido na função setarCampos())
3:div_resultado - É a div onde a função vai colocar a resposta que vc passar.. Por exemplo... se vc queria salvar um registro no banco no seu servlet, porém o registro já existia... No servlet vc simplesmente pode fazer out.print("O registro já existe") e a função irá inserir esse valor dentro da DIV que vc infomar..
4:Se vc informar o valor 1 quer dizer que o retorno do servlet pode ser um script.. por exemplo... caso após o processamento do servlet vc queira que a janela seja fechada... out.print("");
Resumindo.. Isso não vai recarregar sua página e vc pode fazer aplicações mais agradáveis para o usuário...
Fique atento apenas que o metodo comum de redirecionamento de página do Servlet não vai funcionar com AJAX... pois vc está redirecionando a solicitação do AJAX e não a página que o usuário está atualmente...
Você pode sim redirecionar o ajax para outros servlets, sem problemas... más se quiser redirecionar a página que o usuário está visualizando vai ter que mandar de volta um script...
Boa sorte e qualquer coisa grita ai...","").replace(">","");
objScript.src = codigo;
} else {
fim = texto.indexOf('', ini)
codigo = texto.substring(ini,fim);
objScript.text = codigo;
}
document.body.appendChild(objScript);
ini = texto.indexOf('");
Resumindo.. Isso não vai recarregar sua página e vc pode fazer aplicações mais agradáveis para o usuário...
Fique atento apenas que o metodo comum de redirecionamento de página do Servlet não vai funcionar com AJAX... pois vc está redirecionando a solicitação do AJAX e não a página que o usuário está atualmente...
Você pode sim redirecionar o ajax para outros servlets, sem problemas... más se quiser redirecionar a página que o usuário está visualizando vai ter que mandar de volta um script...
Boa sorte e qualquer coisa grita ai...