Fala desenvolvedores, continuando a implementação do tutorial anterior onde utilizamos o Ajax e jQuery para capturar exceções na servlet. Na parte dois deste tutorial as exceções foram implementadas e capturadas com sucesso.
E para isso utilizamos na servlet um código de resposta HTTP para a requisição feita por meio do Ajax. Este código de resposta indica o estado da requisição, se a mesma foi processada com sucesso ou se a página não foi encontrada entre outros possíveis.
Assim sendo, para o estado em que um erro interno no servidor foi retornado como resposta, o código de status utilizado é o 500. Entretanto, retornar para o usuário um erro interno de servidor, não significa muito, então chamamos o método getWriter para o objeto de resposta e assim escrever a saída que queremos que o usuário visualize. E ainda concatenamos com a mensagem do tipo da exceção que foi lançada.
Entretanto o jQuery pode fornecer uma solução ainda mais elegante para esta situação.
CAPTURANDO EXCEÇÃO COM JQUERY
Por estarmos utilizando uma função de retorno de manipulação, poderemos quando uma solicitação for bem sucedida utilizar o .done() e para argumentos quando a solicitação retorna uma falha utilizaremos o .fail(). Vale ressaltar que estes métodos estão sendo chamados no lugar dos obsoletos sucess e error. Estamos falando de métodos, não os confundir com as callbacks success e error.
Ao efetuar o teste, quando o retorno é um erro, podemos ver que um objeto é retornado. Este objeto é um HTTP em xml. Assim, o método fail, terá alguns parâmetros que não serão necessários em caso de solicitação bem sucedida.
São estes parâmetros a variável xhr assim chamada por guardar uma instância do objeto XMLHttpRequest, mas você pode dar a ela o nome que desejar. O segundo parâmetro é o status que é o código de status HTTP que o servidor retornou. E o errorThrown, terceiro parâmetro da função de retorno de chamada de erro jQuery. É o errorThrown que irá receber a parte textual do status HTTP.
EM POUCAS PALAVRAS
E agora você pode testar a aplicação e ter a resposta de texto do status HTTP sendo exibida no alerta (alert) para o usuário. E isso porque entre os parâmetros utilizamos o errorThrown, uma String que corresponde à resposta de status HTTP para qualquer resposta de falha. Eu fico por aqui, nos vemos no próximo tutorial.