Dados do banco resgatados pelo servlet e exibidos no JSP

7 respostas
P

Estou tentado fazer com que dados resgadatos por um servlet seja exibidos no JSP.
Como devo chamar na determanda pagina do JSP?E qual o erro neste,codigo, pois tb náo esta retornando nenhum dado!

Segue abaixo os codigos

Servlet

imports...

public class Curriculo extends HttpServlet { 
    Aluno a= new Aluno();
    CurriculoDAO cd = new CurriculoDAO();
    Curriculo curri= new Curriculo();
   
    
  protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
        RequestDispatcher view; 
        response.setContentType("text/html;charset=UTF-8"); 
        PrintWriter out = response.getWriter(); 
      try { 
               //  PARA BUSCA
                   String nome=null;   
                   nome=request.getParameter(nome);
                  curri.setNome(nome);
                  cd.consulta(curri.getNome());
                  out.print(cd.nome);
                                            
                             
    }
catch(Exception e) 
{ 
out.print(e.getMessage()); 
e.printStackTrace();
}
  }
 
     protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
        processRequest(request, response); 
    } 
    
       protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
        processRequest(request, response); 
    } 
    
       public String getServletInfo() { 
        return "Short description"; 
    } 
    // </editor-fold> 
} 

    
 Metodo para a busca, no arquivo .java

 public void consulta(String x)
   {
          try{
              con = getConnection();
              stmt = con.prepareStatement("select nome from teste2 where nome=?");    
              stmt.setString(1,n);
              rs = stmt.executeQuery();
              
             int flag=0;
      
            if (rs.next())
            {
            nome = rs.getString("nome"); 
            flag=1;
            
            }

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

7 Respostas

C

Como você está chamando seu Servlet a partir do JSP?

P

Estou chamando o servlet na JSP assim:

<form action=“Curriculo” method=“Post”>

C

Repasse os dados da requisição para a JSP:

RequestDispatcher view = request.getRequestDispather&#40;"/suaJSP.jsp"&#41;;

view.forward&#40;request,response&#41;;
P

Estou tentado fazer um codigo que o servlet resgata um nome do banco de dados ( nome que seja igual a Maria)Porém nada me retorna, no jsp.Se coloco o out.println retorna, mas quando mando retornar ao JSP, não retorna.
Usei o que foi postado, mas ão esta funcionando…

package Controller;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class Resgate extends HttpServlet &#123;

private String erro;




protected void processRequest&#40;HttpServletRequest request, HttpServletResponse response&#41;
throws ServletException, IOException &#123;
response.setContentType&#40;"text/html;charset=UTF-8"&#41;;
PrintWriter out = response.getWriter&#40;&#41;;

try&#123;

Class.forName&#40;"com.mysql.jdbc.Driver"&#41;;
con = DriverManager.getConnection&#40;"jdbc&#58;mysql&#58;//localhost&#58;3306/teste","root","root"&#41;;
stmt = con.prepareStatement&#40;"select nome from teste2 where nome=maria"&#41;;
stmt.setString&#40;1,n&#41;;
rs = stmt.executeQuery&#40;&#41;;

String nome;
int flag=0;

if &#40;rs.next&#40;&#41;&#41;
if&#40;flag==0&#41;
&#123;
request.setAttribute&#40;"nome",rs.getString&#40;"nome"&#41;&#41;;
RequestDispatcher view= request.getRequestDispatcher&#40;"/index.jsp"&#41;;
view.forward&#40;request, response&#41;;
flag=1;

&#125;


if &#40;flag==1&#41;
&#123;
erro="Nao Encontrado";
&#125;

&#125;
catch&#40;Exception e&#41;
&#123;
erro = e.getMessage&#40;&#41;;
&#125;

&#125;



protected void doGet&#40;HttpServletRequest request, HttpServletResponse response&#41;
throws ServletException, IOException &#123;
processRequest&#40;request, response&#41;;
&#125;


protected void doPost&#40;HttpServletRequest request, HttpServletResponse response&#41;
throws ServletException, IOException &#123;
processRequest&#40;request, response&#41;;
&#125;


public String getServletInfo&#40;&#41; &#123;
return "Short description";
&#125;

&#125;

JSP

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
&lt;title&gt;JSP Page&lt;/title&gt;
&lt;/head&gt;
&lt;% String dado = request.getParameter&#40;"nome"&#41;;%&gt;
&lt;body&gt;
&lt;form action="Resgate" method="Post"&gt;

&lt;h1&gt;JSP Page&lt;/h1&gt;
&lt;%=dado%&gt;
&lt;input name="confirmar" type="submit" id="confirmar" value="Confirmar!"&gt;
&lt;/form&gt;
&lt;/body&gt;

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

C

Você já tentou debugar para saber se está retornando os dados do banco?

Utilize EL (${}) no lugar de expressões ( <%= %>).

P

Quando usava <%= dado %> retornava null.
Porem usando ${dados} náo retorna nada.

Pelo que observei, fazendo alguns testes, o <% String dado = request.getParameter(“nome”);%> náo esta resgatando o que o servlet esta enviando.

C

Então você tem que verificar (via debug) se está retornando os dados do banco corretamente.

Criado 22 de julho de 2007
Ultima resposta 24 de jul. de 2007
Respostas 7
Participantes 2