comment écrire une Requête de Connexion à la page servlet à partir de la base de données
package java4s;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class OnServletLogin extends HttpServlet {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/STUDENTS";
static final String USER = "root";
static final String PASS = "";
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Database..");
stmt = conn.createStatement();
String sql = "SELECT id, userId, password FROM login";
ResultSet rs = stmt.executeQuery(sql);
PrintWriter pw = res.getWriter();
res.setContentType("text/html");
String user = req.getParameter("userName");
String pass = req.getParameter("userPassword");
pw.print("<font face='verdana'>");
if (user.equals("select * from login where userId="+user+"and password"+pass) )
pw.println("Login Success...!");
else
pw.println("Login Failed...!");
pw.print("</font>");
pw.close();
} catch (ClassNotFoundException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Salut c'est mon code, je suis en train de mettre en œuvre une page de connexion de base de données, mais je suis incapable de mettre de la logique pour la connexion de données de base de données. J'ai créer une table login
j'ai 2 champs user id
et password.
Mais comment faire pour récupérer et comment chercher pour que je puisse activer la connexion?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire en utilisant le code ci-dessous,
Mise à JOUR:
Essayez d'utiliser une instruction préparée au lieu de directement la transmission de valeurs à la requête sql.
Par exemple.
Dans la page de connexion,créez un formulaire qui accepte le nom d'utilisateur et mot de passe.Ce formulaire doit appeler une servlet où vous devez entrer le nom d'utilisateur et le mot de passe à l'aide de cette façon
Alors d'obtenir l'original nom d'utilisateur et le mot de passe de la base de données.Correspondre avec celui-ci.Si des correspondances ensuite créer une session et de l'avant à la page suivante else envoyer à la page de connexion
Quelque chose comme cela
Veuillez utiliser PreparedStatemen pour Corriger l'Injection SQL......
Lire ci-dessous des articles.
http://www.javacodegeeks.com/2012/11/sql-injection-in-java-application.html
http://software-security.sans.org/developer-how-to/fix-sql-injection-in-java-using-prepared-callable-statement
http://en.wikipedia.org/wiki/SQL_injection
select * from TABLE where userid=bla ET mot de passe=bla
si exactement une ligne correspondante existe alors aller de l'avant et laisser le mec journal en en définissant les variables de session qui serait autrement rediriger l'utilisateur à partir d'autres pages et d'autres choses.
Si quelque chose le long des lignes de [Cet exemple possède un nom d'utilisateur ni de mot de passe]
}