Oke, session apa itu session. mungkin sahabat-sahabat semua sering mendengarkannya bukan ? Session merupakan pendefinisian suatu variable yang di eksekusi di server. Misal jika sahabat-sahabat semua login di suatu website maka ketika di logout maka kita tidak akan bisa back lagi.
Yuk kita coba buat aplikasi session di JSP menggunakan database tentunya .
Pertama buka netbeans nya dan buka browser dan ketikan ini di address bar browsernya : http://localhost/phpmyadmin/
image
setelah itu lalu buat database dengan nama ari_java_session dan tambahkan table user. dengan ketentuan sebagai berikut :
image
lalu buat new project dan web application di netbean dengan nama session
Setelah itu silahkan buka netbeannya dan file->new project->java web->web application->next->finish
Setelah itu buat sebuah folder untuk menyimpan class yang kita buat di source package nya, perhatikan gambar berikut :
image
Lalu buat sebuah class di dalam package org.sample.util dengan Nama ConMan dan ketik code dibawah ini :

   1: package sess.ion.util;
   2:  
   3: import java.sql.Connection;
   4: import java.sql.DriverManager;
   5: import java.sql.SQLException;
   6:  
   7: public class ConMan {
   8:  
   9:     private Connection conn;
  10:     private String url = "jdbc:mysql://localhost:3306/ari_java_session";
  11:     private String user = "root";
  12:     private String password = "";
  13:  
  14:     public ConMan(String url, String user, String password) {
  15:         this.url = url;
  16:         this.user = user;
  17:         this.password = password;
  18:  
  19:     }
  20:  
  21:     public ConMan() {
  22:     }
  23:  
  24:     public Connection logOn() {
  25:         conn = null;
  26:         try {
  27:             DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  28:             conn = DriverManager.getConnection(url, user, password);
  29:             System.out.println("Connected Successded");
  30:         } catch (SQLException e) {
  31:             System.out.println("Connection Error : " + e.getMessage());
  32:         }
  33:         return conn;
  34:     }
  35:  
  36:     public void logOff() {
  37:         try {
  38:             if (conn != null) {
  39:                 conn.close();
  40:                 System.out.println("Connection Closed");
  41:             }
  42:         } catch (SQLException e) {
  43:             System.out.println("Connection Error : " + e.getMessage());
  44:         }
  45:     }
  46:     public static void main(String args[]){
  47:        ConMan cm = new ConMan();
  48:        cm.logOn();
  49:     }
  50: }

Lalu buat sebuah class lagi di package sess.ion.bean dengan nama User dan ketik kode dibawah ini :

   1: package sess.ion.bean;
   2: public class User {
   3:     private int id;
   4:     private String username;
   5:     private String password;
   6:     public int getId() {
   7:         return id;
   8:     }
   9:  
  10:     public void setId(int id) {
  11:         this.id = id;
  12:     }
  13:  
  14:     public String getPassword() {
  15:         return password;
  16:     }
  17:  
  18:     public void setPassword(String password) {
  19:         this.password = password;
  20:     }
  21:  
  22:     public String getUsername() {
  23:         return username;
  24:     }
  25:  
  26:     public void setUsername(String username) {
  27:         this.username = username;
  28:     }
  29:  
  30: }

Lalu buat sebuah class lagi di package sess.ion.dao dengan nama UserDao dan ketik kode dibawah ini :


   1: package sess.ion.dao;
   2:  
   3: import java.sql.*;
   4: import sess.ion.util.*;
   5: import sess.ion.bean.*;
   6:  
   7: public class UserDao {
   8:  
   9:     private ConMan conn = new ConMan();
  10:  
  11:     public String cek(User user) {
  12:         String Hasil = "0";
  13:         Connection conDB = null;
  14:         try {
  15:             conDB = conn.logOn();
  16:             String query = "SELECT * from user where username=? and password=?";
  17:             PreparedStatement st = conDB.prepareStatement(query);
  18:             st.setString(1, user.getUsername());
  19:             st.setString(2, user.getPassword());
  20:            
  21:             try {
  22:                 ResultSet rs =    st.executeQuery();
  23:                 if (rs.next()) {
  24:                 Hasil = "1";
  25:                 }
  26:             } catch (SQLException e) {
  27:                 System.out.println("Error " + e.getMessage());
  28:                 Hasil = "0";
  29:             }
  30:         } catch (SQLException e) {
  31:             System.out.println("Error" + e.getMessage());
  32:             Hasil = "0";
  33:         }
  34:         return Hasil;
  35:     }
  36: }

Setelah itu lalu buat sebuah class lagi di package sess.ion.test dengan nama Main dan ketik kode dibawah ini serta jalankan :

   1: /*
   2:  * To change this template, choose Tools | Templates
   3:  * and open the template in the editor.
   4:  */
   5: package sess.ion.test;
   6:  
   7: import sess.ion.bean.User;
   8: import sess.ion.dao.UserDao;
   9:  
  10: /**
  11:  *
  12:  * @author HT 2010
  13:  */
  14: public class Main {
  15:  
  16:     public static void main(String args[]) {
  17:         UserDao sd = new UserDao();
  18:         User s = new User();
  19:         String user = "admin";
  20:         String password = "admin";
  21:  
  22:         s.setUsername(user);
  23:         s.setPassword(password);
  24:         System.out.println(sd.cek(s));
  25:     }
  26: }

Nah sekarang lalu buat beberapa file jsp di folder web pages seperti berikut :

image

Didalam file login.jsp coding ini :

   1: <html>
   2:     <head>
   3:         <style>
   4:             a{
   5:                 font: bold 13px Verdana;
   6:                 padding: 2px;
   7:                 padding-left: 4px;
   8:                 display: block;
   9:                 width: 100px;
  10:                 color: black;
  11:                 text-decoration: underline;
  12:             }
  13:             a:hover{
  14:  
  15:                 color: black;
  16:                 text-decoration: none;
  17:             }
  18:  
  19:         </style>
  20:  
  21:         <script type="text/javascript" >
   1:  
   2:             function validate()
   3:             {
   4:                 if(document.frm.username.value=="")
   5:                 {
   6:                     alert("Please enter username");
   7:                     document.frm.username.focus();
   8:                     return false;
   9:                 }
  10:                 if(document.frm.password.value=="")
  11:                 {
  12:                     alert("Please enter username");
  13:                     document.frm.password.focus();
  14:                     return false;
  15:                 }
  16:                 return true;
  17:             }
  18:             function trim(stringToTrim) {
  19:                 return stringToTrim.replace(/^\s+|\s+$/g,"");
  20:             }
  21:  
  22:         
</script>
  22:  
  23:         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  24:         <title>Login</title>
  25:     </head>
  26:     <body>
  27:         <%
   1:  
   2:  
   3:                     String errmsg = "";
   4:                     if (request.getParameter("errmsg") != null && request.getParameter("errmsg") != "") {
   5:                         errmsg = "Invalid username and password";
   6:                     }else{
   7:                         errmsg=" ";
   8:                         }
   9:         
%>
  28:  
  29:  
  30:         <form name="frm" onSubmit="return validate();" action="checkLogin.jsp" method="post">
  31:             <table border="0" width="400px" align="center" bgcolor="#CDFFFF">
  32:                 <tr><td colspan=2 align="center" style="color:red;"><%
   1: =errmsg
%></td></tr>
  33:                 <tr><td colspan=2 align="center">&nbsp;</td></tr>
  34:                 <tr><td colspan=2 align="center"><b>User Login</b></td></tr>
  35:                 <tr><td>Username : </td><td><input type="text" name="txtUsername" id="username"></td></tr>
  36:                 <tr><td>Password : </td><td><input type="password" name="txtPassword" id="password"></td></tr>
  37:                 <tr><td colspan=2 align="center">
  38:                         <!--
  39:                                        <tr><td colspan=2 align="center"><input type="button" name="submit" value="Submit" onclick="login();"></td></tr>
  40: 
  41:                                              <a href="user_register.jsp">New User</a>-->
  42:                         <input type="submit" name="sSubmit" value="Submit" />
  43:                     </td></tr>
  44:             </table>
  45:         </form>
  46:     </body>
  47: </html>

Didalam file logout.jsp coding ini :

   1: <%
   2: session.removeAttribute("username");
   3: session.invalidate();
   4: response.sendRedirect("login.jsp");
   5: %>
Didalam file succes.jsp coding ini :


   1: <%@ page contentType="text/html; charset=iso-8859-1" language="java"%>
   2: <html>
   3:     <head>
   4:         <title>Successfully Login by JSP</title>
   5:     </head>
   6:  
   7:     <body>
   8:         Successfully login by JSP<br />
   9:         Session Value<br />
  10:         <%
   1:  
   2:         if (session.getAttribute("username")!= null){
   3:                     out.print("UserName :" + session.getAttribute("username") + "<br>");
   4:         
%>
  11:  
  12:  
  13:         <a href= "logout.jsp"><b>Logout</b></a>
  14:         <%
   1:  
   2:         }else {
   3:             response.sendRedirect("login.jsp");
   4:             }
   5:         
%>
  15: <br/>
  16:     </body>
  17: </html>

Didalam file checkLogin.jsp coding ini :

   1: <%@page import="sess.ion.dao.UserDao"%>
   2: <%@page import="sess.ion.bean.User"%>
   3: <%
   4:             UserDao sd = new UserDao();
   5:             User s = new User();
   6:             String user = request.getParameter("txtUsername");
   7:             String password = request.getParameter("txtPassword");
   8:  
   9:             s.setUsername(user);
  10:             s.setPassword(password);
  11:             String hasil = sd.cek(s);
  12:  
  13:             if (hasil == "1") {
  14:                 out.println(hasil);
  15:                 String sUserName = s.getUsername() + s.getPassword();
  16:                 out.println("Berhasil : " + sUserName);
  17:                 session.setAttribute("username", s.getUsername());
  18:                 response.sendRedirect("success.jsp");
  19:             } else {
  20:                 //out.println(hasil);
  21:                 //String sUserName = s.getUsername() + s.getPassword();
  22:                 //out.println("Gagal : " + sUserName);
  23:                 response.sendRedirect("login.jsp?errmsg=error");
  24:             }
  25: %>

Jangan lupa tambahkan librari untuk mysql jdbc nya yah. Mungkin pada kesempatan ini itulah yang bisa dapat dibagi. Kalau ada pertanyaan dapat menghubungi saya di FB atau di YM. Oh iya lupa ini source code program diatas kalau mau dowaload disini

Terimakasih

5 Komentar

  1. The Maks Man // Tuesday, September 20, 2011 at 9:37:00 AM GMT+7  

    Terima kasih atas postingan saudara, cukup bermanfaat sebagai referensi saya dalam belajar java. Thanks sobbb

  2. Anonymous // Sunday, November 20, 2011 at 9:21:00 AM GMT+7  

    punyaku kok selalu muncul error seperti ini setelah d run:

    HTTP Status 404 -

    type Status report

    message

    descriptionThe requested resource () is not available.

    GlassFish v3

    mohon pencerahannya..

  3. Anonymous // Friday, June 14, 2013 at 4:08:00 PM GMT+7  

    Apache Server Coba Pakai Tomcat Mas/Mbak. GlassFish memang sedikit bandel.

  4. Gusti Ardias Riantono // Sunday, October 20, 2013 at 12:00:00 AM GMT+7  
    This comment has been removed by the author.
  5. Anonymous // Saturday, November 2, 2013 at 2:39:00 PM GMT+7  

    ane ada solusi, untuk http error.
    login.jsp ubah jadi index.jsp(klik kanan login.jsp > properties > ubah name jadi index)

    Lalu ubah semua login.jsp dari checklogin, logout, succes.jsp nya menjadi index.jsp