Tengo un script JavaScript en el que he recogido un array. Mi intención es guardar la información relativa a ese array en una base de datos MySQL. Para ello, parece ser, debo cargarlo en un JSON y enviarlo al .jsp, que deberá parsearlo y enviárselo a un .java que lo meterá en la BD. Por supuesto, no me funciona nada, y como podréis ver a continuación, soy primerizo en esto del JSON y estoy más perdido que Steven Seagal en una fiesta de pijamas. Pero es que también tiene tela la cosa, jeje.
Bueno, así es como llamo en el script JavaScript:
.JS
Código:
var myJsonString = JSON.stringify(rankingLocal); var url = "XXX.jsp"; request = new XMLHttpRequest(); request.open("POST", url, true); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(myJsonString);
Y así como lo recibo en el .JSP
.JSP
Código:
<%@page contentType="application/json" pageEncoding="UTF-8"%> <%@page import="XXXXXXXXXXXXXXXXX.User" %> <% User u = null; u = new User(); String nombre; Int puntuacion; JSONObject arr = (JSONObject) JSONValue.parse(http_request.responseText); for(int i=1;i<arr.size();i++) { nombre = arr.getString(i-1); puntuacion = (arr.getString(i); u.register(nombre, puntuacion); } %>
Por último, aunque no creo que sea relevante, así accedo a la BD:
.JAVA
Código:
public User() { //this.setUrl("XXX/" + bd); this.setUrl("XXX"); this.setDriver("XXX"); this.setNombre("XXX"); this.setPassword("XXX"); this.setTable("XXX"); } public void register(String nombre, Integer puntuacion) { try { this.crearConexion(); this.setSql("INSERT INTO ranking SET Nombre = ?, Puntuacion = ?;"); this.setPs(this.getCon().prepareStatement(this.getSql())); this.getPs().setString(1, nombre); this.getPs().setInt(2, puntuacion); this.getPs().executeUpdate(); } catch (SQLException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } catch (ClassNotFoundException ex) { Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex); } finally { this.cerrarConexion(); } }
Por si ayuda, el error que ahora mismo recibo es el siguiente:
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Espero que con el caso expuesto al completo podáis ayudarme a tener un mejor enfoque de esta tecnología, de aquí en adelante tendré que usarla mucho y me tiene basante preocupado la manera en que sigo pez por más que intento pillarlo.
Muchas gracias de antemano,
Alexander.