foxmolder5
15-12-2004, 23:13
vi è una pagina web in cui sono presenti solo dei campi in cui inserire: user,password,nome,cognome,anni,(con relativo bottone per l'invio dei dati) ed inoltre vi è un servlet che gestisce la pagina e memorizza i dati in un db (gestito tramite mysql).se inserisco user+password mi viene detto nome cognome e anni.ed invece se inserisco tutti i campi vengo registrato. la gestione lato server viene fatta con tomcat (configurato e funzionannte).
la pagina web viene vista in locale e se inserisco user+password e sono presente nel db mi viene detto senza prob il nome,cognome e anni, ma se inserisco tutti i campi l'operazione va a buon fine (non viene dato nessun errore) ma i dati non vengono inseriti nel db.
sapete dirmi come mai?
la servlet non è fatta da me e quindi vorrei chiedervi cosa significa :
String action = (request.getParameter("a") != null) ?
request.getParameter("a") : "";
come mai quell' "a" passato nella funzione getParameter?che significa?
di seguito è presente la servlet. grazie
package authentication;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.*;
public class AuthenticationServlet extends HttpServlet {
Connection con = null;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/prova_lab","root","giampiero");
}
catch (SQLException ex) {
throw new ServletException(ex.getMessage());
}
catch (ClassNotFoundException ex) {
throw new ServletException(ex.getMessage());
}
catch (IllegalAccessException ex) {
throw new ServletException(ex.getMessage());
}
catch (InstantiationException ex) {
throw new ServletException(ex.getMessage());
}
}
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String user = request.getParameter("user");
String pass = request.getParameter("password");
String action = (request.getParameter("a") != null) ?
request.getParameter("a") : "";
PrintWriter out = response.getWriter();
try {
if (!action.equals("r")) {
if (user == null || user.trim().equals("")) {
throw new Exception(this.getLogHeader() +
"errore nome utente non specificato.");
}
if (pass == null || pass.trim().equals("")) {
throw new Exception(this.getLogHeader() +
"errore password non specificata.");
}
Statement registra = con.createStatement();
ResultSet res = registra.executeQuery(
"Select * from utente where user='" + user + "' and password='" +
pass + "'");
res.beforeFirst();
if (res.next()) {
String nome = res.getString("nome");
String cognome = res.getString("cognome");
int anni = res.getInt("anni");
out.println("<HTML>" +
"<body>" +
"<center>" +
"<table border=\"1\" bgcolor=\"red\"><tr><td>" +
"<table border=\"1\" bgcolor=\"white\" align=\"left\">" +
"<tr><td>nome</td><td> <input type=\"text\" name=\"nome\" value = \"" +
nome + "\"><br></td></tr>" +
"<tr><td>cognome</td><td> <input type=\"text\" name=\"cognome\" value = \"" +
cognome + "\"><br></td></tr>" +
"<tr><td>età</td><td> <input type=\"text\" name=\"anni\" value = \"" +
anni + "\"><br></td></tr>" +
"<tr><td colspan=\"2\" align=\"center\"></td></tr>" +
"</center> " +
"</FORM>" +
"</Table>" +
"</body> " +
"</HTML>"
);
res.close();
registra.close();
}
else {
res.close();
registra.close();
response.sendRedirect("Registrazione.html");
}
}
else {
String nome = request.getParameter("nome");
String cognome = request.getParameter("cognome");
int anni = Integer.parseInt(request.getParameter("anni"));
Statement registra = con.createStatement();
try {
registra.execute("Insert into utente values('" + user + "', '" + pass +
"', '" + nome + "', '" + cognome + "' ," + anni +
")");
}
catch (Exception e) {
response.sendRedirect("RegistrazioneErrore.html");
}
finally {
registra.close();
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
out.println("c'è stato un problema");
//response.sendRedirect("inserisci qui la pagina di errore");
}
}
public void destroy() {
super.destroy();
try {
con.close();
}
catch (SQLException ex) {
}
}
private String getLogHeader() {
return "AuthenticationServlet ";
}
}
la pagina web viene vista in locale e se inserisco user+password e sono presente nel db mi viene detto senza prob il nome,cognome e anni, ma se inserisco tutti i campi l'operazione va a buon fine (non viene dato nessun errore) ma i dati non vengono inseriti nel db.
sapete dirmi come mai?
la servlet non è fatta da me e quindi vorrei chiedervi cosa significa :
String action = (request.getParameter("a") != null) ?
request.getParameter("a") : "";
come mai quell' "a" passato nella funzione getParameter?che significa?
di seguito è presente la servlet. grazie
package authentication;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.*;
public class AuthenticationServlet extends HttpServlet {
Connection con = null;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/prova_lab","root","giampiero");
}
catch (SQLException ex) {
throw new ServletException(ex.getMessage());
}
catch (ClassNotFoundException ex) {
throw new ServletException(ex.getMessage());
}
catch (IllegalAccessException ex) {
throw new ServletException(ex.getMessage());
}
catch (InstantiationException ex) {
throw new ServletException(ex.getMessage());
}
}
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String user = request.getParameter("user");
String pass = request.getParameter("password");
String action = (request.getParameter("a") != null) ?
request.getParameter("a") : "";
PrintWriter out = response.getWriter();
try {
if (!action.equals("r")) {
if (user == null || user.trim().equals("")) {
throw new Exception(this.getLogHeader() +
"errore nome utente non specificato.");
}
if (pass == null || pass.trim().equals("")) {
throw new Exception(this.getLogHeader() +
"errore password non specificata.");
}
Statement registra = con.createStatement();
ResultSet res = registra.executeQuery(
"Select * from utente where user='" + user + "' and password='" +
pass + "'");
res.beforeFirst();
if (res.next()) {
String nome = res.getString("nome");
String cognome = res.getString("cognome");
int anni = res.getInt("anni");
out.println("<HTML>" +
"<body>" +
"<center>" +
"<table border=\"1\" bgcolor=\"red\"><tr><td>" +
"<table border=\"1\" bgcolor=\"white\" align=\"left\">" +
"<tr><td>nome</td><td> <input type=\"text\" name=\"nome\" value = \"" +
nome + "\"><br></td></tr>" +
"<tr><td>cognome</td><td> <input type=\"text\" name=\"cognome\" value = \"" +
cognome + "\"><br></td></tr>" +
"<tr><td>età</td><td> <input type=\"text\" name=\"anni\" value = \"" +
anni + "\"><br></td></tr>" +
"<tr><td colspan=\"2\" align=\"center\"></td></tr>" +
"</center> " +
"</FORM>" +
"</Table>" +
"</body> " +
"</HTML>"
);
res.close();
registra.close();
}
else {
res.close();
registra.close();
response.sendRedirect("Registrazione.html");
}
}
else {
String nome = request.getParameter("nome");
String cognome = request.getParameter("cognome");
int anni = Integer.parseInt(request.getParameter("anni"));
Statement registra = con.createStatement();
try {
registra.execute("Insert into utente values('" + user + "', '" + pass +
"', '" + nome + "', '" + cognome + "' ," + anni +
")");
}
catch (Exception e) {
response.sendRedirect("RegistrazioneErrore.html");
}
finally {
registra.close();
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
out.println("c'è stato un problema");
//response.sendRedirect("inserisci qui la pagina di errore");
}
}
public void destroy() {
super.destroy();
try {
con.close();
}
catch (SQLException ex) {
}
}
private String getLogHeader() {
return "AuthenticationServlet ";
}
}