Buenas a todos, espero que esten teniendo un buen día y sin aburrirlos más voy directo al grano, resulta que estoy haciendo una aplicación web con JSP, dentro de esta aplicación tengo 2 combobox, 1 combobox carga una lista desde una base de datos, y el segundo combobox debería hacer lo mismo, pero basado en la selección del primer combobox. (Un ejemplo muy común de esto es clasico par de combos "País" y "Ciudad" en el que el segundo solo cargaría las ciudades del país seleccionado)
 
Bueno a continuación le dejo le codigo de mi JSP, he buscado mucho y bueno he encontrado muchos tutoriales en el que usan Javascript, y apesar de seguirlos al pie de la letra nunca me resulta 

 (Cabe aclarar que jamás en mi vida e usado javascript) otros proponen el uso de AJAX pero nisiquiera se implementarlo ahaha, bueno, les dejo mi codigo para ver si me pueden brindar su ayuda n,n    
Código Java:
Ver original<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Eliminar Métricas</title>
    </head>
    <body>
        <form name="frmEliminar" method="POST" id="frm_del">
            <table style=" border: 0px; font-family: Verdana; background-color: gainsboro;
                   font-size: 12px; text-align: left; box-shadow: black 0px 1px 10px 0px">
                <tbody>
                    <tr>
                        <td>Nombre de Aplicación</td>
                        <td><select style="width: 317px" id="cmbAN" name="cmbApplicationName">
                                <option value="">--Seleccione--</option>
                        <!-- Carga el combobox/drop-down list con las posibles aplicaciones -->
                                <%for(Application appl: new dao.ApplicationDao().listarAplicaciones()){%>
                                <option value="<%= appl.getIdApplication() %>"><%= appl.getNameApplication()%></option>
                                <% } %>
                            </select>
                        </td>
                    </tr>
                    <tr>                      
// HASTA AQUÍ NO TENGO PROBLEMAS, PERO NECESITO CARGAR LA INFO DE ESTE COMBO, BASANDOSE EN LA SELECCIÓN DEL COMBO ANTERIOR
                        <td>Nombre de Transacción</td>
                            <td><select  id="cmbTN" name="cmbTransactionName">
                                <option value="">--Seleccione--</option>
                                <option value=""></option>
                            </select></td>
                    </tr>
                </tbody>
            </table>
            <br>
            <input type="submit" value="BUSCAR" name="btnBuscar" /> <input type="submit" value="ELIMINAR" name="btnEliminar" />
        </form>
    </body>
<html>
  
Este es el codigo de mi clase ApplicationDao (La cual contiene la query)   
Código Java:
Ver original// Crea y devuelve una lista (ArrayList) con la ID y nombre de las aplicaciones.
    public static ArrayList<Application> listarAplicaciones(){
        ArrayList<Application> aplicaciones = new ArrayList<Application>();
        try {
            String query 
= " USE SyntheticMonitoring "                     + "SELECT ApplicationID, ApplicationName "
                    + "FROM Applications";
            while(rs.next()){
                Application aplicacion = new Application();
                aplicacion.setIdApplication(rs.getInt("ApplicationID"));
                aplicacion.setNameApplication(rs.getString("ApplicationName"));
                aplicaciones.add(aplicacion);
            }
            
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Error Exception</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>SQLException "+ ex +"</h1>");
            out.println("</body>");
            out.println("</html>");
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Error Exception</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Exception "+ ex +"</h1>");
            out.println("</body>");
            out.println("</html>");
        }
        return aplicaciones;
    }
  
  
Esta es la clase TransactionDao donde tengo la query de las transacciones (La que pide la ID de aplicación como parametro) *Nota: no se si debería tener este metodo como "estatico" aunque no se si esto afecta negativamente la carga del cmb"    
Código Java:
Ver originalpublic static ArrayList<Transaction> listarTransacciones(int appID){
        ArrayList<Transaction> trans = new ArrayList<Transaction>();
        try {
            String query 
= " USE SyntheticMonitoring "                     + "SELECT TransactionID, TransactionName "
                    + "FROM Transactions "
                    + "WHERE ApplicationID = ?";
            listar.setInt(1, appID);
            while(rs.next()){
                Transaction transaccion = new Transaction();
                transaccion.setIdTransaction(rs.getInt("TransactionID"));
                transaccion.setNameTransaction(rs.getString("TransactionName"));
                trans.add(transaccion);
                
            }
            
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Error Exception</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>SQLException "+ ex +"</h1>");
            out.println("</body>");
            out.println("</html>");
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Error Exception</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Exception "+ ex +"</h1>");
            out.println("</body>");
            out.println("</html>");
        }
        return trans;
    }
  
Aquí una fotito de lo que quiero hacer hahaha ( Explicado con manzanas ahhaha 

 ) 
No es necesario hacer exactamente lo que tenía planeado con el Onchange, pero si obtener el mismo resultado :c 
 
Bueno chicos, espero que puedan ayudarme con esto, ya que no soy muy experto en el tema, agradecería cualquier ayuda, muchas gracias n-n