Aplikasi Login dengan Java dan MySQL
Setelah postingan kemarin tentang Menyimpan Password Terenkripsi ke Database. Ada yang tanya, lalu bagaimana cara loginnya, kalo passwordnya terenkripsi. Jadi saya coba lanjutin project kemarin untuk buat Aplikasi Login dengan Java MySQL. Buat yang belom baca postingan tentang aplikasi registrasinya, silakan baca postingan saya tentang Menyimpan Password Terenkripsi ke Database. Dan download projectnya. Buat yang udah nyobain, silakan lanjutkan projectnya dengan menambahkan 2 file yang akan dibahas di tutorial ini.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<center>
<form action="login" method="post">
<table align="center"><tr><td><h2>Login</h2></td></tr></table>
<table width="300px" align="center" style="border:1px solid #000000;background-color:#efefef;">
<tr><td colspan=2></td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<td><b>Username</b></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><b>Password</b></td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
<tr><td colspan=2> </td></tr>
</table>
</form>
</center>
</body>
</html>
Selanjutnya buat file java untuk authentikasi username dan password untuk loginnya, seperti ini:
package net.hanivinside;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Arrays;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.tomcat.util.codec.binary.Base64;
public class login extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try{
String Username = request.getParameter("username");
String Password = request.getParameter("password");
//dari sini mulai enkripsi
byte[] byteArray = Base64.encodeBase64(Password.getBytes()); //mengambil bytes dari Password
System.out.println(Arrays.toString(byteArray)); //menyimpan hasil enkrip ke dalam array
String base64pass = new String(byteArray); //menyimpan hasil enkrip ke string base64pass
if(validate(Username, base64pass)){
out.println("Login berhasil");
}
else{
out.println("Login gagal");
}
}
catch (Exception e){
out.println(e);
}
}
//ini fungsi untuk validasi user+pass ke database
public static boolean validate(String username,String password){
String connectionURL = "jdbc:mysql://localhost:3306/LoginApp";
boolean status=false;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(connectionURL,"root","haniv");
PreparedStatement ps=con.prepareStatement("select * from user where username=? and password=?");
ps.setString(1,username);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
status=rs.next();
}
catch(Exception e){e.printStackTrace();}
return status;
}
}
Terakhir, tambahkan script ini untuk konfigurasi servletnya di web.xml
<servlet>
<display-name>login</display-name>
<servlet-name>login</servlet-name>
<servlet-class>net.hanivinside.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
Simpan. sekarang coba jalankan aplikasinya. Hasilnya akan seperti ini :
Saat berhasil login, akan tampil seperti ini :
Gimana? simple kan.. silakan dikembangkan lagi sesuai kebutuhan, Semoga bermanfaat.
Comments
Post a Comment
-Berkomentarlah yang baik dan rapi.
-Menggunakan link aktif akan dihapus.