da un thread passato:
http://forum.html.it/forum/showthrea...readid=1423569
ho ripreso la clsse del buon lomio
classe java: compil senza errori
questo è il form index.jsp:codice:package beans; import java.sql.*; import java.util.Vector; public class Database { private String nomeDB; private String nomeUtente; private String pwdUtente; private String errore; private Connection db; private boolean connesso; public Database(String nomeDB) { this(nomeDB, "", ""); } public Database(String nomeDB, String nomeUtente, String pwdUtente) { this.nomeDB = nomeDB; this.nomeUtente = nomeUtente; this.pwdUtente = pwdUtente; connesso = false; errore = ""; } // Apre la connessione con il Database public boolean connetti() { connesso = false; try { // Carico il driver JDBC per la connessione con il database MySQL Class.forName("com.mysql.jdbc.Driver"); // Controllo che il nome del Database non sia nulla if (!nomeDB.equals("")) { // Controllo se il nome utente va usato o meno per la connessione if (nomeUtente.equals("")) { // La connessione non richiede nome utente e password db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB); } else { // La connessione richiede nome utente, controllo se necessita anche della password if (pwdUtente.equals("")) { // La connessione non necessita di password db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente); } else { db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente); } } connesso = true; } else { System.out.println("Manca il nome del database!!"); System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\""); System.exit(0); } } catch (Exception e) { errore = e.getMessage(); } return connesso; } public Vector eseguiQuery(String query) { Vector v = null; String [] record; int colonne = 0; try { Statement stmt = db.createStatement(); ResultSet rs = stmt.executeQuery(query); v = new Vector(); ResultSetMetaData rsmd = rs.getMetaData(); colonne = rsmd.getColumnCount(); while(rs.next()) { record = new String[colonne]; for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1); v.add( (String[]) record.clone() ); } rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); } return v; } public boolean eseguiAggiornamento(String query) { int numero = 0; boolean risultato = false; try { Statement stmt = db.createStatement(); numero = stmt.executeUpdate(query); risultato = true; stmt.close(); } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); risultato = false; } return risultato; } // Chiude la connessione con il Database public void disconnetti() { try { db.close(); connesso = false; } catch (Exception e) { e.printStackTrace(); } } public boolean isConnesso() { return connesso; } public String getErrore() { return errore; } }
e questa è l'actioncodice:<div class="login"> <form action="http://localhost:8080/javamysql/login.jsp"> <fieldset> <legend><h2>Login</h2></legend> <div id="loginInp">UserName: <input type="username" name="log"></div> <div id="loginInp">Password: <input type="password" name="log"></div> <input type="submit" value="Login" id="loginButt"> </fieldset> </form> </div>
e mi genera il seguente errore quando la lancio...codice:<%@page import="java.util.Vector"%> <%@page import="beans.Database"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="refresh" content="1;url=http://localhost:8080/javamysql/index.jsp"> <link rel="stylesheet" type="text/css" href="CSS/style.css" media="all"> <title>Attendere</title> </head> <body> <% Database db = new Database("java", "root", "ubuntu"); db.connetti(); String username = ""; String password = ""; Vector select = new Vector(); username = request.getParameterValues("log")[0]; password = request.getParameterValues("log")[1]; String query = "SELECT * FROM `utenti` WHERE username = '"+ username +"' AND password = '"+ password +"';"; select = db.eseguiQuery(query); if (select.size() == 0) { %> <script type="text/javascript">alert("Username o password errati!");</script> <% } else { session.setAttribute("loggato", true); String nome; String[] s = null; s = (String[]) select.get(0); nome = s[3]; session.setAttribute("nome", nome); } %> </body> </html>
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 27
24: String query = "SELECT * FROM `mysql`.`utenti` WHERE username = '"+ username +"' AND password = '"+ password +"';";
25:
26: select = db.eseguiQuery(query);
27: if (select.size() == 0) {
28: %>
29: <script type="text/javascript">alert("Username o password errati!");</script>
30: <%
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

Rispondi quotando