Retorno do Servlet para o jQuery

3 respostas
R

BOm dia Galera, tudo bem?

Estou com o seguinte duvida.

Estou usando JSP + SERVLET + JQUERY, com o jQuery eu faço uso o .POST onde eu chamo um servlet para autenticação de usuário, a autenticação está funcionando perfeitamente, o problema que eu estou enfrentando é que no retorno do servlet para o jQuery ele retorna um html completo da pagina que estava indicando para o servlet retornar, e como que eu faço para que eu tenha somente o retorno do servlet para eu verificar no jQuery, vou dar um exemplo:

Tenho um servlet que eu passo o usuário e senha e ele me retorna true ou false, indicando se o usuário é valido ou nao, no jQuery esse retorno vem em forma da pagina html que eu indiquei no servlet, como que eu faço para pegar somente o retorno que eu quero no jQuery, no caso o treu ou false, vou postar os codigos do jQuery e do Servlet que eu estou usando.

Obs.: quando eu clico no LINK LOGAR eu chamo o jQuery, e é onde que eu dou o POST para verificar o LOGIN.

jQuery

$.post(login, {TxtLogin: Login,TxtSenha: Senha}, function(data)

{

var content = $(data).find(#Resultado’).val();

alert($("#Resultado").val());
$( "#Resultado2" ).text(content);
	$( "#Resultado" ).text(data);
	
});
Servlet

login = request.getParameter(“TxtLogin”);

senha = request.getParameter(“TxtSenha”);
Login autentic = new Login();
	retorno = autentic.isAutentic(login, senha);
	
	if (retorno){
		HttpSession session = request.getSession();  
		session.setAttribute("Login", login);
		session.setAttribute("pagina", "Conteudo.jsp");			
		//response.sendRedirect("/trekking/principal.jsp");
		request.setAttribute("retLogin", true);

		RequestDispatcher view = request.getRequestDispatcher("index.jsp");
                view.forward(request, response);		
		
	}else{
		request.setAttribute("retLogin", false);
                RequestDispatcher view = request.getRequestDispatcher("/index.jsp");
                view.forward(request, response);		
	}

3 Respostas

A

Olá rodrigo, quando for postas o seu código, poste entre as tags [code] e [/code] (Sem os *) para ficar melhor a visualização.
Posta um exemplo do que está sendo o retorno da sua servlet para ficar mais facil.
Por alto, eu diria somente para você tratar a resposta, mas estou meio cego com o que você escreveu.

Rendrys

Pelo que entendi da sua pergunta, você pode fazer o seguinte na sua servlet:

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     PrintWriter writer = resp.getWriter();
     writer.println("meu retorno aqui");
     writer.flush();
     writer.close();
}

ai vc recebe exatamente o que vc quer na função ajax do jquery…

R

andre.froes, valeu pela dica, mas acontece o seguinte, quando eu faço um post com o jQuery ele me retorna uma string sendo um html da pagina que eu estou fazendo o retorno no servlet.

Por exemplo
Quando eu uso as seguintes instruções no servlet, e dentro do servlet faço todas as tratativas que eu preciso

request.setAttribute("retTrecho", "001");
request.setAttribute("retHora", "12:10:01");
RequestDispatcher view = request.getRequestDispatcher("/calcTrekking.jsp");
view.forward(request, response);

quando volta para o jQuery usando a seguinte instrução

<html>
       <body>
           001 12:10:01
       </body>
   </html>

a instrução do post em jQuery que eu estou usando é a seguinte

$.post('calcTrekking', {TxtTrecho: Trecho,TxtHora: Hora}, 
	function(data){
		//aki dentro eu gostaria de obter os valores das variaveis "retTrecho" e "retHora" que estão no servlet.
	});

O que eu gostaria é no jQuery pegar o conteúdo do “retTrecho” e “retHora” será que eu estou usando o jQuery de maneira errada, pois foi dessa maneira que eu consegui achar nas pesquisas que eu realizei na internet.

Criado 10 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 3
Participantes 3