style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

jsp usar valor de selected para actualizar otra sección de la misma página

Hola a todos; primero que nada gracias por la ayuda que dan...

Estoy empezando con java y jsp.
En este caso estoy usando JSTL para consultar datos; en la primera parte lleno un select, con valores de una base de datos; quero que al seleccionar una entrada del select, se actualize la parte de abajo (relación uno a muchos).
1.- ¿Cómo obtengo el valor del select para dárselo como parámetro al query de más abajo?
2.- ¿Debería separar la parte inferior (el query y la tabla) en un frame usando otro .jsp?
Ahorita lo tengo fijo el parámetro pero debe usar el valor del select.

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
    select pr_id, pr_name from projects where pr_status = 1
</sql:query>

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
        <title>DB Test</title>
    </head>
    <body>
         <form action="response.jsp">
    <strong>Select a project</strong>
    <select name="subject_id">
        <c:forEach var="row" items="${rs.rows}">
            <option value="${row.pr_id}">${row.pr_id}-${row.pr_name}</option>
        </c:forEach>
    </select>
    <input type="submit" value="submit" name="submit" />
</form>
       
--- Aquí empieza el query para llenar la tabla ----

<sql:query var="agent" dataSource="jdbc/TestDB">
    select cb_id as Id, concat(cb_nombre, cb_ape_pat, cb_ape_mat) as Agente from colabora where cb_id in (8083,3700,3474,3550,1754)
</sql:query>

        <form action="response.jsp">
            <table border="1">
                <!-- column headers -->
                <tr>
                    <c:forEach var="columnName" items="${agent.columnNames}">
                        <th><c:out value="${columnName}"/></th>
                    </c:forEach>
                </tr>
                <!-- column data -->
                <c:forEach var="row" items="${agent.rowsByIndex}">
                    <tr>
                        <c:forEach var="column" items="${row}">
                            <td><c:out value="${column}"/></td>
                        </c:forEach>
                    </tr>
                </c:forEach>
            </table>
        </form>
</body>

</html>

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Objeto HttpServletRequest

Puedes usar l objeto que tiene el contexto del request que se hace al servidor y obtener uno de los parteros que tiene. Lo haces así:

request.getParameter("nombre_componente_form");

Donde nombre_componente_form es lo que va en el atributo name de tu componente del formulario. Por ejemplo:

<input name="nombre_componente_form" type="text/radio/button/hidden/..."...

   Para el segundo punto, si no quieres empezar a pelearte con JavaScript pues el frame es opción, pero te recomiendo que empieces de una vez a familiarizarte con JS y un poco de JSON. De esa forma podrías consultar un servlet que reciba la consulta y llame a las clases/metodos que hagan el procesamiento de datos e imprima como resultado una cadena JSON; posterior mente recibes esa cadena JSON y la procesas para pintar los datos obtenidos en el componente que gustes de tu pagina. Eso lo haces con javascript. Osea que:

  1. activas un hilo nuevo que consulte un servlet al que le envías parámetros desde javascript
  2. En el servlet recibes los parametros del objeto request
  3. invocas tus clases/metodos de procesamiento de informacion
  4. Construyes una cadena JSON con el resultado del procesamiento y la regresas en el servlet
  5. Ya que el JavaScript tenga la cadena JSON la pareas para obtener los datos
  6. Pintas los datos en cualquier componente de tu pagina
  7. Dices: ooorale que chido!

Estos pasos los puedes hacer claro desde 0 pero es bueno que sepas que existen ya muchísimos frameworks que te ayudan y te facilitan mucho estas tareas

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">