Membuat Session Login/Logout Sistem Java web ( JSP )
Sore-sore daripada bengong mending buat tutorial yang bermanfaat, aamiin... mudah-mudahan yah.. BIsmillah... yuk mulai dibahas..
Dalam pembuatan sistem/aplikasi pasti ada hak akses yang biasa di sebut Login sistem agar data yang diinputkan aman dan tidak bisa diambil atau dilihat sembarang user. Berikut langkah-langkah pembuatan Login sistemnya.
1. Buatlah database dengan nama latihan dan nama tabelnya admin, isi fieldnya :
- id = int (10) => primary key
- username = varchar (30)
- password = varchar (30)
2. Buat 3 Source Packages dengan cara klik kanan pada Source Packages project nya – pilih New – pilih Java Package.
setelah muncul form berikan nama masing-masing Source Package nya dengan nama masing-masing sess.ion.bean, sess.ion.dao, sess.ion.test dan sess.ion.util.
3. Pada sess.ion.bean buat sebuah Servlet/class dengan cara klik kanan pada sess.ion.bean – pilih New – pilih Servlet dan setelah muncul form berikan class name nya dengan User kemudian klik Finish. Lakukan dengan langkah yang sama pada sess.ion.dao dengan class name servlet UserDao, sess.ion.test dengan class name servlet Main dan sess.ion.util dengan class name servlet ConMain. Sehingga tampilan tab Project Source Package nya seperti berikut :
4. Kemudian kembali ke file Servlet User.java dan ubah/ketikkan source code nya seperti berikut :
package sess.ion.bean;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
5. Kembali ke file Servlet ConMain.java dan ubah juga sorce codenya dengan code berikut :
package sess.ion.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConMan {
private Connection conn;
private String url = "jdbc:mysql://localhost:3306/sik";
private String user = "root";
private String password = "";
public ConMan(String url, String user, String password) {
this.url = url;
this.user = user;
this.password = password;
}
public ConMan() {
}
public void logOff() {
try {
if (conn != null) {
conn.close();
System.out.println("Connection Closed");
}
} catch (SQLException e) {
System.out.println("Connection Error : " + e.getMessage());
}
}
public static void main(String args[]){
ConMan cm = new ConMan();
cm.logOn();
}
public Connection logOn() {
conn = null;
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
conn = DriverManager.getConnection(url, user, password);
System.out.println("Connected Successded");
} catch (SQLException e) {
System.out.println("Connection Error : " + e.getMessage());
}
return conn;
}
}
6. Kembali ke file Servlet UserDao.java dan ubah juga sorce codenya dengan code berikut :
package sess.ion.dao;
import java.sql.*;
import sess.ion.util.*;
import sess.ion.bean.*;
public class UserDao {
private ConMan conn = new ConMan();
public String cek(User user) {
String Hasil = "0";
Connection conDB = null;
try {
conDB = conn.logOn();
String query = "SELECT * from admin where username=? and password=?";
PreparedStatement st = conDB.prepareStatement(query);
st.setString(1, user.getUsername());
st.setString(2, user.getPassword());
try {
ResultSet rs = st.executeQuery();
if (rs.next()) {
Hasil = "1";
}
} catch (SQLException e) {
System.out.println("Error " + e.getMessage());
Hasil = "0";
}
} catch (SQLException e) {
System.out.println("Error" + e.getMessage());
Hasil = "0";
}
return Hasil;
}
}
7. Kembali ke file Servlet Main.java dan ubah juga sorce codenya dengan code berikut :
package sess.ion.test;
import sess.ion.bean.User;
import sess.ion.dao.UserDao;
public class Main {
public static void main(String args[]) {
UserDao sd = new UserDao();
User s = new User();
String user = "admin";
String password = "admin";
s.setUsername(user);
s.setPassword(password);
System.out.println(sd.cek(s));
}
}
8. Kembali ke file Servlet ConMain.java dan ubah juga sorce codenya dengan code berikut :
package sess.ion.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConMan {
private Connection conn;
private String url = "jdbc:mysql://localhost:3306/latihan";
private String user = "root";
private String password = "";
public ConMan(String url, String user, String password) {
this.url = url;
this.user = user;
this.password = password;
}
public ConMan() {
}
public void logOff() {
try {
if (conn != null) {
conn.close();
System.out.println("Connection Closed");
}
} catch (SQLException e) {
System.out.println("Connection Error : " + e.getMessage());
}
}
public static void main(String args[]){
ConMan cm = new ConMan();
cm.logOn();
}
public Connection logOn() {
conn = null;
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
conn = DriverManager.getConnection(url, user, password);
System.out.println("Connected Successded");
} catch (SQLException e) {
System.out.println("Connection Error : " + e.getMessage());
}
return conn;
}
}
9. Pada index.jsp ketikkan source code program berikut sebagai coding pembuatan tampilan untuk Login User.
<html>
<head>
<style>
a{
font: bold 13px Verdana;
padding: 2px;
padding-left: 4px;
display: block;
width: 100px;
color: black;
text-decoration: underline;
}
a:hover{
color: black;
text-decoration: none;
}
</style>
<script type="text/javascript" >
function validate()
{
if(document.frm.username.value=="")
{
alert("Please enter username");
document.frm.username.focus();
return false;
}
if(document.frm.password.value=="")
{
alert("Please enter username");
document.frm.password.focus();
return false;
}
return true;
}
function trim(stringToTrim) {
return stringToTrim.replace(/^\s+|\s+$/g,"");
}
</script>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Login</title>
</head>
<body>
<div id="wrap">
<%
String errmsg = "";
if (request.getParameter("errmsg") != null
&& request.getParameter("errmsg") != "") {
errmsg = "Invalid username and password";
}else{
errmsg=" ";
}
%>
<form name="frm" onSubmit="return validate();"
action="checkLogin.jsp" method="post">
<table border="0" width="400px" align="center"
bgcolor="#1e90ff">
<tr><td colspan=2 align="center"
style="color:red;"><%=errmsg%></td></tr>
<tr><td colspan=2
align="center"> </td></tr>
<tr><td colspan=2 align="center"><b>User
Login</b></td></tr><br>
<tr><td>Username : </td><td><input
type="text" name="txtUsername" id="username"></td></tr>
<tr><td>Password : </td><td><input
type="password" name="txtPassword"
id="password"></td></tr>
<tr><td colspan=2 align="center">
<!--
<tr><td colspan=2 align="center"><input type="button"
name="submit" value="Submit"
onclick="login();"></td></tr>
<a href="user_register.jsp">New User</a>-->
<br><input type="submit" name="sSubmit"
value="Login" /><br>
</td><br/></tr><br>
</table>
</form>
</div>
</body>
</html>
10. Buat file checkLogin.jsp dan ketikkan source code program berikut sebagai coding untuk pengecekkan login apakah sesuai dengan data admin yang sudah diinputkan atau tidak.
<%@page import="sess.ion.dao.UserDao"%>
<%@page import="sess.ion.bean.User"%>
<%
UserDao sd = new UserDao();
User s = new User();
String user = request.getParameter("txtUsername");
String password = request.getParameter("txtPassword");
s.setUsername(user);
s.setPassword(password);
String hasil = sd.cek(s);
if (hasil == "1") {
out.println(hasil);
String sUserName = s.getUsername() + s.getPassword();
out.println("Berhasil : " + sUserName);
session.setAttribute("username", s.getUsername());
response.sendRedirect("success.jsp");
} else {
//out.println(hasil);
//String sUserName = s.getUsername() + s.getPassword();
//out.println("Gagal : " + sUserName);
response.sendRedirect("index.jsp?errmsg=error");
}
%>
11. Buat file logout.jsp dan ketikkan source code program berikut :
<%
session.removeAttribute("username");
session.invalidate();
response.sendRedirect("index.jsp");
%>
12. Buat file success.jsp dan ketikkan source code program berikut :
<%@ page contentType="text/html; charset=iso-8859-1" language="java"%>
<html>
<head>
<title>Login JSP</title>
</head>
<body>
Berhasil Login menggunakan bahasa pemrograman java JSP<br />
<%
if (session.getAttribute("username")!= null){
out.print("UserName :" + session.getAttribute("username") + "<br>");
%>
<a href= "logout.jsp"><b>Logout</b></a>
<%
}else {
response.sendRedirect("index.jsp");
}
%>
<br/>
</body>
</html>
13. Jangan lupa Add Library Driver MySQL nya.
14. Coba jalankan programnya, jika sukses dan tidak error maka ketika pertama kali program yang dijalankan tampilannya seperti gambar berikut :
setelah sukses login akan masuk ke Beranda dengan tampilan berikut :
jika login gagal, tampilannya akan kembali ke tampilan login dengan peringatan gagal login :
dan jika melakukan logout, maka tampilan akan kembali ke tampilan login user.
Mau source codenya ?? Download SC ajah hehee
Mau tutorial e-Book nya?? Download e-Book juga deh.. hehee
Thanks to Referensi (no copas Loh..) >> http://www.maribelajar.web.id/2013/10/membuat-session-login-dengan-jsp.html
Kerenn.. :o visit ilmuminati.com
ReplyDeleteehh dek fandy, mksh kunjungannya.. keren juga tuh ilmuminati.com (y)
Deletemantap ..
ReplyDeleteUP :D
Deleteizin dipelajari ilmu nya kk :D
ReplyDeleteOkey.. share juga yah hehee :D
Deletenice
ReplyDelete;)
DeleteMau nanya nih, itu tabel admin field id nya itu buat apa ya?
ReplyDeletesebagai PK aja.. kalau username udah mewakili sebagai PK tidak perlu dg ID gak apa2
DeleteThis comment has been removed by the author.
ReplyDeleteka cara nambah login user na gimana?
ReplyDeletelogin user? maksud nya yg gmn?
Deletesis, this is exactly work! tapi username sama passwordnya apaan ya? soalnya di atas kaga di jelaskan. thnks
ReplyDeletelihat di database admin nya mas
Deletelw buat peta ada gak k3
ReplyDeleteweyy.. belum ada.. mudah2an nanti bisa ya
Delete