Olá desenvolvedores, continuando com a captura de exceções utilizando Ajax com jQuery e servlet JSP. Na parte um deste tutorial, estruturamos o projeto web e o preparemos para a implementação da servlet. Se você ainda não viu, clique aqui para ser redirecionado.
A requisição para o servidor será com jQuery utilizando Ajax. Dessa forma para que possamos obter a resposta de erro com sucesso, iremos enviar e obter a resposta usando jQuery via Ajax. Assim será possível a manipulação independente da resposta ser de sucesso ou de erro.
IMPLEMENTANDO A FUNÇÃO COM JQUERY
A implementação da função utilizando de jQuery via Ajax recebe parâmetros dispostos em forma de array. O primeiro parâmetro é o do método (method) de envio. Assim, como iremos enviar parâmetros o método será o POST, que é um método do protocolo HTTP para envio de requisições.
O segundo parâmetro dessa função é a URL que recebe o caminho para onde o POST enviará a requisição. E neste caso, o caminho é a servlet capturarExcecao, que ainda iremos criar.
E por fim o último parâmetro, data, que receberá os valores que serão enviados, armazenados na variável valorParam que recebe o valor de valorInformado.
Ainda dentro do escopo da função, quando recebemos o retorno do método, seja este retorno, como já mencionado de sucesso ou de erro, ele pode ser capturado utilizando o método .always(). Este método retorna uma String e sempre captura o retorno por meio da variável response onde estarão presentes todos os dados da resposta.
IMPLEMENTANDO A SERVLET
Dentro da pasta source (src) do seu projeto crie um package de excecoes, e dentro dele crie a servlet CapturarExcecao >> Next. Na URL mappings o caminho deverá iniciar com letra minúscula /capturarExcecao >> Next >> Finish.
E como sempre fazemos, para deixar a servlet mais enxuta e o código mais limpo, apagaremos os comentários.
Na anotação @WebServlet é onde a servlet será mapeada, nos dispensando de fazê-lo no arquivo xml.
@webServlet(/pages/capturarExcecao)
E como você deve saber, a requisição enviada pelo POST na função Ajax será recebida na servlet pelo método doPost. E como capturamos uma exceção em Java? Por meio do bloco try/catch, que será implementado no escopo do doPost.
Assim, dentro do bloco try para sabermos se estamos conseguindo capturar o valor inserido no campo text, implementaremos por meio do método print() que exibirá no console o valor capturado vindo da requisição. Desse modo o request.getParameter receberá como parâmetro o valorParam que contém a variável valorInformado.
E implementará ainda um código de status HTTP ou código de resposta que indicará o estado da requisição. Entre os estados possíveis temos acesso negado, página não encontrada, erro interno do servidor e o código que indica sucesso. E ainda utilizaremos o response para chamar o método getWriter() para o objeto de resposta e exibir uma mensagem no alerta(alert).
E dentro do bloco catch, se algum erro ocorrer, por meio do código 500 poderemos informar o tipo de erro que ocorreu. E para exibir o erro para o usuário o response concatenado com a mensagem do tipo da exceção que foi lançada.
EM POUCAS PALAVRAS
Observe que embora a exceção esteja sendo capturada com sucesso, em caso de erro, ela não está sendo exibida para o usuário no alerta (alert). E para isso o JQuery nos fornece uma solução no mínimo mais elegante, e é o que iremos ver no próximo tutorial. Eu fico por aqui.