Tugas - Elearning UPN JATIM

advertisement
PIBJ 5
Penyimpanan object sementara : bukan ke dalam file atau database, tetapi mengirimkan data yang
sedang dimanipulasi ke bagian lain dalam aplikasi kita.
Tempat penyimpanan object :
□ Page
□ HTTP servlet request
□ Cookies
□ Session
□ Application
Cara menyimpan dan mengambil data :
 Menyimpan
public void setAttribute (String key, Object value)
ex : ctx.setAttribute("biodata", bio)
 Mengambil
public object getAttribute (String key)
ex: ctx.getAttribute("biodata")
Return type adalah type object, perlu di-casting sesuai dengan type object yang kita inginkan
ex: (biodata) ctx.getAttribute("biodata")
 Menghapus
removeAttribute (String key)
ex: ctx.removeAttribute ("biodata")
Editor yang dipergunakan : netbeans
Untuk membuat project baru (berupa web application), langkah-langkah :
1. Buka netbeans IDE
2. Pada toolbar menu yang ada pilih file-new project, seperti pada gambar dibawah
3. Muncul window seperti dibawah
4. Seperti pada gambar diatas, pada kolom categories, pilih java web, sedang pada kolom projects
pilih web application lalu klik tombol next
5.
6.
7.
8. Ketika kita membuat project baru (web) dengan netbeans, otomatis netbeans akan menciptakan
direktori-direktori seperti berikut
index,jsp merupakan file yang secara default akan dibuka pertama kali ketika web kita run.
Coba
1. Request Context
1. Buat project baru pada netbeans
2. Pada index.jsp , buat form untuk menginput biodata, seperti listing dibawah
3. Buat class java yang berfungsi membuat object biodata yang berisi nama, alamat dan telepon.
Jangan lupa constructor, setter dan getter nya
4. Listing untuk biodata.java
5. Buat sebuah servlet dengan nama apapun, asal url-pattern nya bernama “simpan”
6.
7.
8. Fungsi dari servlet ini adalah mengambil inputan dari file index.jsp, mengkonversinya menjadi object
biodata kemudian menyimpan object tersebut ke dalam context.
9. Rubah listing code yang ada pada method processRequest menjadi seperti listing dibawah
10. Seperti keterangan pada comment no 4 pada gambar diatas, request pada servlet simpan ini akan
diteruskan ke servlet view  mempergunakan request dispatcher. Buat servlet baru (seperti pada
langkah no 5-7) dengan url pattern=view yang fungsinya membaca object biodata.
11. Rubah listing code pada method processRequest menjadi seperti pada gambar dibawah
2. Application Context (Servlet Context)
Langkah-langkah yang dilakukan pada intinya sama dengan request context, perbedaannya adalah tempat
penyimpanan objectnya. Object pada application context disimpan pada context application, sekali
disimpan, data tersebut dapat diakses oleh seluruh komponen aplikasi, tanpa memperhatikan request atau
session user.
Rubah listing code yang ada pada method processRequest pada servlet simpan menjadi seperti gambar
dibawah
Untuk servlet view
3. Cookies
Karena aplikasi web bersifat stateless (server tidak akan mengingat apakah user telah membuat request
sebelumnya). Agar server bisa mengingat state dari seorang user, maka diperlukan cookies atau session.
Pada cookies, state diingat disisi client (browser), sedang session mengingat pada sisi server. Cookie hanya
bisa menyimpan string, tidak dapat menyimpan object yang kompleks.
Mengirimkan cookie
Langkah-langkahnya :
1. Menciptakan cookie :
Cookie c = new Cookie (“key”, “value”); // mendefinisikan cookie
Ex:
Cookie c = new Cookie("userID", "a1234");
2. Mengeset umur dari cookie
c.setMaxAge(60); // dalam detik
3. Menyimpan cookie ke dalam respon header  mempergunakan response.addCookie. jika langkah
ini terlewati maka tidak ada cookie yang dikirimkan
Ex:
response.addCookie(c);
Membaca cookie dari client
Langkah-langkahnya :
1. Memanggil request.getCookies yang mengembalikan array dari object cookies
Ex :
Cookie[] cookies = request.getCookies();
2. Looping sepanjang array, panggil method getName pada array hingga mendapatkan nama cookie
yang sesuai. Panggil method getValue jika ada nama yang sesuai
Ex :
if (cookies != null) {
for(int i=0; i<cookies.length; i++) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName())) {
doSomethingWith(cookie.getValue());
}
}
}
Listing code untuk index.jsp
Listing untuk method processRequest pada servlet simpan
Listing untuk method processRequest pada servlet lihat
4. Session
Data yang disimpan pada context session dapat diakses oleh semua bagian aplikasi untuk satu sesi user
tersebut. Karena tergantung oleh sesi user, maka antar user satu dengan yang lain data yang diakses
nilainya bisa jadi berbeda. Untuk mempergunakan session dalam servlet :
1. Mengakses object session terkait dengan request saat ini
Ex :
HttpSession session = request.getSession (“true”);
2. Menyimpan informasi kedalam session
session.setAttribute(“nama session”,value);
3. Mengakses informasi terkait dengan sesi
session.getAttribute(“nama session”);// return type nya adalah object, sehingga perlu di casting
4. Membuang/menghapus session
session.removeAttribute(“nama session”); // untuk menghapus session dengan nama tertentu
session.invalidate(); // untuk menghapus semua session pada web application
session.logout();// melog-out user dari web server dan meng-invalidate semua session terkait
dengan user tersebut, hanya bisa dijalankan dari server yang mendukung servlet 2.4 dan JSP 2.0.
Listing code untuk index.jsp
Listing untuk method processRequest pada servlet simpan
Listing untuk method processRequest pada servlet simpan
Tugas
Buatkan web sederhana dengan uraian sebagai berikut :
 Halaman pertama adalah login (nama, password, submit)
 User login dengan nama admin, halaman berikutnya yang muncul adalah halaman untuk admin
 User login dengan nama user1, halaman berikutnya yang muncul adalah halaman untuk user1
 User login dengan nama lain, halaman berikutnya yang muncul adalah halaman untuk guest
 Buatkan fungsi logout
 Setelah logout, user yang login tidak bisa membypass web yang anda buat (user tidak bisa langsung
mengakses halaman ke dua tanpa proses login terlebih dahulu).
Download