SESSION MANAGEMENT
PROYEK 1. TEKNIK DENGAN MENUMPUK PADA VIEW DARI APLIKASI.
Pada kasus authentikasi login user. Hal pertama yang dilakukan adalah membuat file koneksi ke database. Beri nama file tersebut dengan connect.jsp
Program connect.jsp
Selanjutnya kita akan membuat database Session dengan sebuah table Users. Kemudian input Username dan Password yang akan kita pakai. Berikut adalah hasil database yang telah dibuat.
Username : geulis
Password : geulis
Untuk menampung parameter yang diinput oleh user kita harus membuat file index.jsp berikut adalah setting sessionnya.
Program index.jsp
Selanjutnya kita akan membut file main.jsp yang merupakan halaman utama dari proses authentifikasi ini jika berhasil atau session sudah kita dibuat maka user bisa mengakses halaman ini. Jika tidak, maka akan diarahkan ke halaman awal login, yaitu index.jsp.
Program main.jsp
File ini akan memeriksa keberadaan session yakni pada saat kita menjalankan program akan ditampilkan awal login yakni index.jsp dan pada saat kita mengisi user dan password dengan benar maka akan ke file main.jsp dimana terdapat link logout untuk keluar dan kembali ke file awal login yakni index.jsp. akan tetapi jika username dan password yang dimasukan salah maka akan kembali ke awal lagi yakni index.jsp.
Untuk menghapus session kita harus membuat sebuah file. Dalam kasus yang sering kita jumpai yaitu logout.jsp.
Program logout.jsp
Hasil tampilan pada browser
Ketika Username dan Password dimasukkan maka akan muncul tampilan pada browser
Jika link Logout di klik maka akan kembali ke halaman login.jsp.
v Kesimpulan
Session adalah Interaksi antara pengguna web dan aplikasi web, HTTP non statefull, dan Request yang baru berarti cara pandang baru dari pihak HTTP. Obyek HttpSession bisa digunakan untuk memegang conversational state dengan sebuah client tertentu. Di dalam obyek HttpSession bisa disimpan user information, shopping cart dan lain - lain. Untuk mendapatkan obyek HttpSession, Anda memanggil method getSession() dari obyek HttpServletRequest. Untuk menyimpan obyek di HttpSession kita bisa meng-invoke method setAttribute(). Untuk membaca obyek di HttpSession kita bisa meng-invoke method getAttribute() Untuk me-remove obyek dari HttpSession kita bisa meng-invoke method removeAttribute().Dan kita bisa meng-invalidate obyek HttpSession dengan method invalidate().
Obyek yang digunakan untuk membuat session, yakni:
ü HttpSession getSession();
ü HttpSession getSession(boolean);
Fungsi session suatu obyek adalah
ü Jika session sudah ada, getSession(), getSession(true), and getSession(false) akan mengembalikan session yang sudah ada.
ü Jika session belum ada, getSession() dan getSession(true) akan membuatkan satu yang baru dan getSession(false) akan mengembalikan nilai null.
Untuk memeriksa Keberadaan session dengan menggunakan obyek HttpServletRequest yaitu dengan method getSession(false) untuk memeriksa apakah obyek HttpSession bernilai null. Fungsi Session dipakai untuk mendaftarkan semua project dan/atau class yang sedang berjalan atau sedangdalam sesi debug. Jbuilder mengijinkan multiple-project berjalan dan/atau didebug dalamwaktu bersamaan.
Mekanisme kerja proyek 1
Ketika projek tersebut dijalankan maka akan menuju halaman index.jsp, ketika user sudah memasukkan Username dan Password yang benar maka akan menuju halaman utama yaitu Main.jsp hal ini bisa dilakukan ketika proses authentifikasi berhasil atau session telah dibuat. Pada tampilan halaman utama terdapat link ke Logout. Ketika Logout di klik maka akan segera menuju halaman login.jsp Ketika user memasukan Username atau Password yang salah maka akan tetap berada pada halaman index.
PROYEK 2. TEKNIK DENGAN MEMILAH APLIKASI MENJADI TIGA BAGIAN.
Pada proyek yang ke dua ini kita kiata akan membuat controller dari aplikasi yang akan kita buat, controller yang akan kita gunakan adalah sebuah servlet dengan nama login.java. Pada kode login.java kita akan mendefinisikan koneksi ke database, lalu kita akan membuat session dengan keyword.
HttpSession session = request.getSession(true);
hasil dari seleksi data dari database disimpan pada session “username”
session.setAttribute("username", rs.getString("username"));
Servlet login.java
Lalu buat model dari aplikasi yang akan kita buat. Buat packages loginbean dengan LoginBean.java.
Packages loginbean dengan LoginBean.java
Selanjtnya kita akan membuat sebuah file view.jsp untuk menampung parameter yang diinput user dari interface untuk forward page ke controller login.
Program view.jsp
Hasilnya:
Perhatikan <%=request.getParameter(“username”)%> syntak tersebut sama halnya dengan $_POST[“username”] di php yang digunakan untuk mengkoneksikan ke databases sehingga datanya sesuai dengan database yang dibuat. Pada projek kedua databases yang digunkan sama dengan database yang digunakan pada projek pertama. Selanjutnya kita akan membuat view selamatdatang.jsp dan file logout.jsp fungsinya hampir sama dengan projek yang pertama.
Program selamatdatang.jsp
Tampilan pada browser
Program logout.jsp
Tampilan pada browser setelah project dieksekusi. Pada halaman utama adalah login.jsp
Ketika Username dan password dimasukan maka akan menuju ke halaman selamatdatang.jsp dimana Username yakni geulis password yakni geulis. Ketika Username dan password yang dimasukkan salah maka akan tetap berda pada halaman login.jsp. ketika Login telah dilakukan maka akan muncul halaman utama selamatdatang.jsp dimana terdapat link untuk logout atau kembali kehalaman login.jsp.
Perbedaan antar proyek 1 dan proyek 2
l Proyek 1
Pada proyek 1 merupakan pemrograman yang terstruktur (prosedural)
dimana sistem penyusunan statement-statementnya dikelompokkan dalam prosedurprosedur dan fungsi-fungsi yang lebih simpel. Statement-statement tersebut disusun dalam satu alur program yang hierarkis. Tiap statement akan dapat dipanggil atau digunakan berulang-ulang tanpa harus menuliskan blok program lagi. Salah satu ciri dari bahasa pemprograman yang terstruktur adalah terdapat file connect, yang secara terang – terangan menunjukkan suatu file yang merupakan file penghubung ke database. Pada project pertama seluruh sintaks yang diperlukan, baik itu sintaks sql, penggunaan variabel, fungsi session dan sebagainya disimpan dalam satu file, yakni file index.jsp.
Project 1 akan lebih mudah dalam pembuatannya terutama bagi orang – orang yang terbiasa menggunakan bahasa prosedural. Kekurangan pemprograman terstruktur, yaitu:
- Pada sintak “select * from users where username='" + username +"' and password='" + password + "'" yang dituliskan dalam file index.jsp menyebabkan database menjadi tidak aman, jika programmer lain tahu maka akan mudah untuk di kacau programnya.
- Seluruh sintaks yang dituliskan dalam satu file, yaitu file index.jsp membuka peluang bagi orang yang tidak bertanggung jawab untuk mengotak-atik program tersebut.
- Penggunaan variabel (untuk menyimpan parameter yang diinputkan) secara terang-terangan.
- session.setAttribute("sessionusername",rs.getString("username")); session.setAttribute("sessionpassword", rs.getString("password")); response.sendRedirect("main.jsp");
Fungsi diatas session digunakan untuk membuat username dan password yang akan tersimpan di dalam session. ketika melakukan login username dan password yang dimasukan benar maka tinggal menunggu respon dari main.jsp. ketika melakukan login data akan langsung disimpan di databases ini tidak terlalu bagus jika digunakan karna akan mudah untuk di kacaukan oleh programmer lain. Inilah salah satu kelemahan dari bahasa pemprograman struktural (prosedural) yakni sintak - sintak yang biasa diguanakan mudah dibaca atau diketahuhi programmer lain.
l Proyek 2
Project 2 berbeda dengan project 1 dimana project 2 menggunakan bahasa pemrograman berorientasi objek (tidak terstruktur) yaitu yaitu dasar baris-baris program yang disusun tanpa adanya pola tertentu atau struktur yang jelas, disusun sesuai kebutuhan, sehingga ada kemungkinan sebuah baris program ditulis berulang kali. Pada pemrograman tidak struktural untuk keamanan datanya bisa dijaga. Pada pemprograman tidak terstruktur biasanya tidak terdapat file connect, ini bukan berarti tidak ada sintak yang berfungsi untuk menghubungkan file ke database. Sintak yang berfungsi untuk menghubungkan ke database biasanya di sisipkan ke file yang lain tetapi tidak secara terang – terangan. Pada project kedua digunakan konsep model-view-control. Sintaks dibagi menjadi 3 bagian, yakni model, view dan controller. Fungsi controller dikelola oleh file login.java, fungsi model di-handle oleh file LoginBean.java, sedangkan fungsi view dikendalikan oleh file index.jsp. Untuk menampung parameter yang diinputkan pada file index.jsp, dibuat file view.jsp sebagai penampungnya. Untuk project 2, mungkin akan membuat orang yang membuatnya menjadi bingung karena sintaks-sintaks yang digunakan dibagi ke dalam 3 bagian besar, yakni model-view-control. Tetapi, penerapan prinsip dasar bahasa PBO yang digunakan pada project ini membuat kelemahan yang ada pada project 1 dapat diminimalisir sehingga data menjadi lebih aman.
Pada sintak berikut
<jsp:setProperty name="db" property="username" value='<%=request.getParameter("username")%>' />
<jsp:setProperty name="db" property="password" value='<%=request.getParameter("password")%>' />
Keterangan:
Fungsi sintak diatas maka tidak akan memudahkan progremmer lain untuk mengetahuhi password atau username yang dipunyai oleh pembuat program tersebut.
bahasa PBO yang digunakan pada project ini membuat kelemahan yang ada pada project 1 dapat diminimalisir sehingga data menjadi lebih aman.

















