entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

¿Por que no imprime test?

Tengo un codigo y me gustaria que se hicieran consultas en el mismo jsp sin embargo no imprime test
(tengo un js que hace que el valor inicial es 9
este es mi form

form role="form" action="/CIHS/Consulta.jsp">
                    <div class="form-group" >
                        <label>Barrio: </label><select class="form-control" id="barrio" name="barrio" ><%try {
                                BD.Conexion c = new BD.Conexion();
                                Statement stmt = c.getst();

                                String query = "SELECT id_barrio, nombre FROM pruebacentro.barrio;";
                                ResultSet barrio = stmt.executeQuery(query);
                                while (barrio.next()) {%>
                            <option value="<%= barrio.getInt("id_barrio")%>"> <%= barrio.getString("nombre")%> </option>

                            <% }
                                    c.cerrarConexion();
                                } catch (SQLException e) {
                                    System.err.println("Error: barrio_1");
                                }%>
                            <option value="9">No importar criterio</option>
                        </select> </div>
                    <input type="submit" value="Registrar" class="btn btn-success btn-lg" >
                </form>`

Ahi mismo, debajo:

<%
        String query = null;
        BD.Conexion c = new BD.Conexion();
        Connection con = c.getConexion();
        Statement stmt = c.getst();
        String barrio = request.getParameter("barrio");
        String util = request.getParameter("util");
        String uso = request.getParameter("uso");
        String fachada = request.getParameter("fachada");
        String interior = request.getParameter("interior");
        if(barrio=="9"){
            out.println("<h1>TEST</h1>");
        }

Igual me gustaria que me ayuden a optimizarlo para no hacer muchas conexiones

0voto

white comentado

Usar scriplets no es muy buena practica, de todos modos, que valor te imprime la variable barrio ?

intenta agregar este scriplet <%= request.getParameter("barrio") %> y reviza que te devuelva el resultado deseado.

0voto

ItIsJAPO comentado

Me devolvio el servidor un error 500 puesto que devuelve un null

1 Respuesta

2votos

GusGarsaky Puntos5480
  • Usar Scriptlets es considerado una mala práctica de programación.
  • Usar patrón de diseño DAO para abstraer todo el acceso a la data (BBDD).
  • Usar JSTL para mostrar, iterar, etc., para evitar el uso de Scriplets.

Representa tus tablas como entidades:

public Class Barrio {

    private int id;
    private String nombre;
    ...

    // getters y setters

}

Implementa tus DAO (forma básica):

// clase que se encarga de consultar a BBDD
public class BarrioDAO {

    public List<Barrio> findAll() {
        // proceso y devolver
    }

    public List<Barrio> query(String query) {
        // proceso y devolver
    }

    ...

}

Desde tu JSP puedes obtener los resultados de la BBDD de dos formas: Pasando la lista desde un servlet o en el mismo JSP.

Pasando la lista desde el Servlet:

BarrioDAO barrioDao = new BarrioDAO();
List<Barrio> barrioList = barrioDao.findAll();
request.setAttribute("list", barrioList);

En el mismo JSP:

<%
    BarrioDAO barrioDao = new BarrioDAO();
    List<Barrio> barrioList = barrioDao.findAll();
%>

Iteras tu lista desde JSP. Si le pasass la lista por servlet será ${list}:

<c:forEach items="${barrioList}" var="barrio">
    <c:out value="${barrio.id}">
    <c:out value="${barrio.nombre}">
    ...
</c:forEach>

0voto

ItIsJAPO comentado

¿Me puedes explicar un poco mas de DAO?

0voto

GusGarsaky comentado

Aquí hay una serie de temas de CRUD con JSP y además ilustra cómo implementar el patrón DAO. http://todoenjava.blogspot.com/2013/10/jsp-crud-patron-de-diseno-dao.html

Salu2.

PD: Yo comenté mi respuesta, no sé por qué se publicó como respuesta. Si un mod la mueve como comentario de mi respuesta anterior se lo agradecería.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta