Retornar a consulta do servlet para jsp

Preciso retornar o resultado da consulta do servlet (descrição do imovel) para a página jsp…
Pesquisando encontrei sobre o uso do jquery…Segue código que estou utilizando…
Não consigo trazer o retorno…
Estou utilizando o jquery-1.4.2.min.js

Página jsp



<%@ page import="java.sql.*"  contentType="text/json"%>
<%
 
String empid = request.getParameter("empid");
 
String sql="";     
Connection dbCon;     
String valores = "";     
try {     
Class.forName("com.mysql.jdbc.Driver");     

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/imoveis","root","xxx");

java.sql.Statement s = con.createStatement();     
sql = " select descricao from imovel where idImovel = " + empid;     
ResultSet rs = s.executeQuery(sql);     
     
    while(rs.next())     
    {     
        String idImovel = rs.getString("descricao").toString();     
        valores += idImovel+ "\n";     
        }     
        rs.close();     
        s.close();     
     
        } catch (ClassNotFoundException e) {     
            System.out.println("Erro de configuracao" + e.getException());     
        } catch (SQLException sqle) {     
            System.out.println("Erro de SQL:" + sqle.getMessage() + " - " + sql);     
        }     
        response.getWriter().println(valores);  
        System.out.println(valores);
 
 
%>

Página html


<html>
<head>
<title>AJAX and JSON with JQUERY </title>
<script language="javascript" src="jquery-1.4.2.min.js"></script>      



<script language="javascript">
 function getEmployeeDetails(){
   $.getJSON( "empdetails.jsp",{empid : $("#empid").val()}, displayResult);
 }

 function displayResult(data) {
  if ( data.error) // emp not found
  {
      $("#IdImovel").val("")  // clear fields
      $("#descricao").val("")
      alert( data.error);
  }
  else  // Found employee. Display details
  {      
   $("#IdImovel").val( data.IdImovel);
   $("#descricao").val( data.descricao);
  }
}
</script>
</head>
<body>
<form id="form1">
    <h2>Employee Details</h2>
    <table>
      <tr>
        <td>Employee ID : </td>
        <td><input type="text" id="empid" size="10"/> <input type="button"  value="Get Details" onclick="getEmployeeDetails()" /> </td>
       </tr>
       <tr>
        <td>Employe Name : </td>
        <td><input type="text" id="IdImovel" readonly size="30"/></td>
       </tr>
       <tr>
        <td>Salary :  </td>
        <td><input type="text" id="descricao" readonly size="30"/></td>
       </tr>
    </table>
    </form>
</body>
</html>

Tio, crie um servlet, não coloque trilhoes de linhas de código em um arquivo .jsp. No método doGet do servlet você usar o RequestDispatcher para enviar sua lista à sua página jsp:

servlet

//faça sua lógica para retornar os valores do banco de dados
List<Imovel> lista = new SuaClasseImovel().listar();
//define na requisicao a lista que voce vai mandar pra página
request.setAttribute("imoveis", lista);
//envia a requisicao com o atributo acima para a página
request.getRequestDispatcher().forward(request, response);

jsp

<%List<Imovel> lista = (ArrayList<Imovel>) request.getAttribute("lista");%>
<html>
<%--trabalhe com sua lista aqui--%>

</html>

Tem um exemplo mais completo…para estudo e entendimento…
Muito obrigado

Preciso utilizar Ajax para retornar…
Vou seguir este tutorial adpatando o codigo…


import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.*;
import javax.servlet.http.*;

public class JobServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/json");
        PrintWriter out = response.getWriter();
        
        try {
            String action = request.getParameter("action");
            if (action.equals("1")) // send jobs to client  {
                out.println(getJobs()); 
            } else {
                out.println(getEmployees(request.getParameter("jobid")));  // send employees of the given job
            }
        } catch (Exception ex) {
            System.out.println("Error message" + ex.getMessage());
        } finally {
            out.close();
        }
    }

    // returns JSON string
    private String getEmployees(String jobid) throws Exception {
        // connect to oracle using thin driver
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "hr", "hr");
        PreparedStatement ps = con.prepareStatement("select first_name || ' ' || last_name fullname from employees where job_id = ?");
        ps.setString(1,jobid);
        ResultSet rs = ps.executeQuery();
        StringBuffer emps = new StringBuffer("{employees:[");
        while (rs.next()) {
            emps.append("{fullname:\"" + rs.getString("fullname") + "\"},");
        }
        emps.setCharAt( emps.length()-1,']');  // replace last character with ]
        emps.append("}");
        rs.close();
        ps.close();
        con.close();
        return emps.toString();
    }

    // returns JSON string containing jobs 
    private String getJobs() throws Exception {
        // connect to oracle using thin driver
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "hr", "hr");
        Statement st = con.createStatement();
        ResultSet rs = st.executeQuery("select job_id, job_title from jobs");
        StringBuffer jobs = new StringBuffer("{jobs:[");
        while (rs.next()) {
            jobs.append("{id:\"" + rs.getString("job_id") + "\",title:\"" + rs.getString("job_title") + "\"},");
        }
        jobs.setCharAt( jobs.length()-1,']');  // replace last character with ]
        jobs.append("}");
        rs.close();
        st.close();
        con.close();
        return jobs.toString();
    }
}



<html>
<head>
<title>Jobs and Employees</title>
<script language="javascript" src="jquery-1.2.6.js"></script>      
<script language="javascript">

// this is done when page is loaded
$(function() {
   $.getJSON("job",{action : "1"},displayJobs);
  }
);

// callback function for obtaining jobs
function displayJobs(data) {
    $.each(data.jobs, function(index,job) {
        // add items to List box
        $("#jobs").append("<option value='" + job.id + "'>" + job.title + "</option");
       }
    );
}

function  getEmployees() {
    $.getJSON("job",{action : "2", jobid : $("#jobs").val()},displayEmployees);
}

// callback function for obtaining employees
function displayEmployees(data) {
  $("#employees").contents().remove();
  $.each(data.employees, function(index,emp) {
    // add items to List box
     $("#employees").append("<option>" + emp.fullname + "</option");
  } // end of function
  );  // each
}
    
</script>
</head>
<body>
<form id="form1">
    <h2>Jobs and Employees</h2>
    <table>
      <tr>
      <td valign="top" width="200px"> <h3>Jobs </h3> 
          <select id="jobs" size="10" ondblclick="getEmployees()" style="width:200px">
          </select>
          <p/>
          <b>Double click on Job to get Employees of that Job.</b>
      </td>
      <td valign ="top" width="200px">
          <h3>Employees </h3>
          <select id="employees" size="10" style="width:200px">
          </select>
      </td>
    </table>
    </form>
</body>
</html>

Seguindo o tutorial, não consegui carregar os jobs com qualquer outros dados por exemplo…
Se alguém conseguir… Obrigado…

velho que código escroto é esse? vc ta abrindo conexão diretamente na servlet, lançando exceção ao invés de fazer o tratamento… meu deus, que bagunça!

Estou estudando e seguindo o tutorial…
Tem material melhor???