1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
package org.stirm2.tp.servlets.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
import org.stirm2.tp.servlets.beans.Utilisateur;
public class CreeUtilisateur extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
// on récupère les paramètres sur la requête
String login = req.getParameter("login") ;
String motPasse = req.getParameter("motpasse") ;
HttpSession session = req.getSession() ;
ServletContext application = session.getServletContext() ;
Context ctx = (Context)application.getAttribute("initial.context") ;
out.print("<html><body>");
if (ctx != null) {
Utilisateur utilisateur = Utilisateur.newInstance(login, motPasse) ;
if (utilisateur != null) {
try {
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/DSOracle") ;
// écriture de l 'utilisateur en base
/*List listeUtilisateur = UtilisateurHelper.afficheUtilisateur(ds, utilisateur);
Iterator it = listeUtilisateur.iterator() ;
while (it.hasNext()) {
Object o = it.next();
if (o instanceof Utilisateur) {
Utilisateur u = (Utilisateur) o;
String log = u.getLogin();
Object pass = u.getMotPasse();
//Collections.singletonList(listeUtilisateur);
if(log.equals(login) &&
pass.equals(motPasse)){
//out.println("erreur : cet utilisateur existe déja");
ServletHelper.redirection("/creeUtilMaz.htm", req, resp);
}*/
//Utilisateur u = (Utilisateur)it.next() ;
//else {
String sql = "select login, motpasse from utilisateurs order by login, motpasse";
Connection con = ds.getConnection() ;
PreparedStatement psmt = con.prepareStatement(sql);
ResultSet rs = psmt.executeQuery() ;
while(rs.next()){
String log = rs.getString("login");
String mpasse = rs.getString("motpasse");
if(login.equals(log)&& mpasse.equals(motPasse)){
out.println("erreur : ce Marin existe deja en base");
out.println("</body></html>");
//ServletHelper.redirection("/erreur.htm", req, resp);
}
else{
int n = UtilisateurHelper.creeUtilisateur(ds, utilisateur);
if (n == 0) {
// cas d'erreur : rien n'a été écrit en base
log("Failed to write marin") ;
req.setAttribute("erreur", "Echec de l'écriture en base") ;
}
}
}
//}
//}
} catch (NamingException ne) {
log("Could not create data source : " + ne.getMessage(), ne) ;
req.setAttribute("erreur", "Impossible de trouver la source de données") ;
} catch (SQLException sqle) {
log("Error while accessing the DB : " + sqle.getMessage(), sqle) ;
req.setAttribute("erreur", "Erreur d'écriture en base") ;
}
} else {
// le marin est nul, son nom ou son prénom est nul
req.setAttribute("erreur", "Lutilisateur est nul") ;
}
} else {
req.setAttribute("erreur", "Pas de contexte JNDI trouvé") ;
log("No context found on application") ;
}
// on redirige vers une page html
ServletHelper.redirection("/site.htm", req, resp) ;
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp) ;
}
} |
Partager