JSP (Java Server Pages) Muhamad Alif, S.Kom
Servlet?????(Java???) Sebelum menginjak ke JSP, kita harus tahu terlebih dahulu dinamic code dari java untuk pengembangan web application. Servlet??? Servlet=class yang didefinisikan dalam java dan digunakan untuk meningkatkan kemampuan web server dalam menangani request dan response client
Servlet (1) Servlet dapat menerima request dan menghasilkan response melalui protokol komunikasi yang berbeda, tetapi sebagian besar tipe yang digunakan adalah HTTP Java memiliki dua paket yang menyediakan interface dan class untuk servlet, yaitu javax.servlet dan javax.servlet.http
Ambil dan Kirim Data Dua tipe request yang paling umum digunakan adalah GET dan POST, yang sering disebut sebagai request method. Request GET digunakan untuk mendapatkan atau menerima informasi dari server yang berupa file HTML atau image. Request POST digunakan untuk mengirimkan data ke server dalam bentuk HTML yang berisi data yang dimasukan oleh client. Method yang sering digunakan untuk memberikan respon terhadap request client adalah doget dan dopost yang memiliki dua parameter, yaitu HttpServletRequest dan HttpServletResponse
Method ServletRequest Method String getparameter(string name) Keterangan Dikirim ke servlet sebagai bagian request GET atau POST. Enumeration getparameternames() Mengembalikan nama seluruh parameter yang dikirim ke servlet sebagai bagian dari request POST. String[] getparametervalues(string name) Mengembalikan array of string yang berisi nilai untuk parameter servlet Cookie[] getcookies() Mengembalikan array of cookie, merupakan objek client yang disimpan di server. Cookies dapat digunakan untuk mengidentifikasikan secara unik setiap client oleh server. HttpSession getsession(boolean create) Mengembalikan objek HttpSession yang sedang berlasung pada client. Parameter akan bernilai jika tidak terdapat objek Httpsession di client. Secara fungsionalitas memilki kegunaan yang sama dengan Cookies.
Method ServletResponse Method Keterangan void addcookie(cookie cookie) Digunakan untuk menambahkan cookie pada header sebagai respons ke client. ServletOutputStream getoutputstream() Mendapatkan output stream berbasis byte yang memungkinkan data teks dikirim ke client. PrintWriter getwriter() Mendapatkan output stream berbasis karakter yang memungkinkan data binary dikirim ke client. Void setcontenttype(string type) Menspesifikasikan type MIME respons ke browser.
JSP????? Java Server Pages (JSP) adalah bahasa scripting untuk web programming yang bersifat server side seperti halnya PHP dan ASP. JSP dapat berupa gabungan antara baris HTML (Client Code) dan fungsi-fungsi dari JSP itu sendiri.
JSP????? JSP bertujuan untuk menyederhanakan pembuatan dan manajemen halaman web yang bersifat dinamis, dengan cara memisahkan content dan presentasi JSP merupakan halaman yang menggabungkan HTML dengan scripting tag dan program java Pada saat JSP dipanggil client melalui browser, JSP tersebut akan di kompile terlebih dahulu menjadi servlet, dan kemudian hasilnya dikembalikan ke client
Ilustrasi JSP Bean Bean Uses Uses <HTML> <BODY> Beberapa Contents Static <% Beberapa kode Java %> <%jsp:beberapatagjsp%> </BODY> </HTML> Diterjemahkan Servlet
Kelebihan JSP JSP dapat berjalan pada sembarang platform. JSP cenderung memiliki performansi yang lebih baik, karena JSP dilakukan kompile terlebih dahulu menjadi servlet yang berupa bytecode. Didukung bahasa Java yang memilki kemampuan OOP dan tingkat reuseability tinggi. Dapat menggunakan JavaBean untuk mengenkapsulasi kode-kode java.
Kelemahan JSP Proses kompile terhadap halaman JSP mengakibatkan client harus menunggu lebih lama pada saat pertama kali di lakukan loading. Hal ini tentu saja menyebabkan kecepatan proses JSP secara menyeluruh berkurang.
Elemen-elemen JSP Struktur halaman JSP adalah penambahan program Java dalam tag <% %> pada suatu halaman HTML untuk membangkitkan content yang bersifat dinamik. JSP memiliki tiga komponen utama, yaitu : 1. Directives : merupakan suatu petunjuk bagi web container tentang sesuatu yang harus dilakukan pada saat container melakukan compile halaman JSP. 2. Scripting Elements : tag untuk menuliskan program Java. 3. Action : special tag yang memberikan pengaruh pada halaman JSP pada saat runtime.
1. Directives Sintaks : <%@ namadirective attribute1= value1 attribute2 = value2 %> Directives terdiri dari tiga bagian, yaitu : a. Page Directive b. Include Directive c. Taglib Directive
a. Page Directive Untuk menentukan dan memanipulasi atributatribut pada halaman JSP serta memberikan informasi ke container untuk atribut-atribut yang memerlukan proses tertentu. Sintaks : Contoh : <%@ page ATTRIBUTE %>
a. Page Directive Attribute Keterangan Default Nilai Language Menentukan bahasa pemrograman yang Java digunakan Extends Digunakan untuk men-generate superclass Tidak ada Import Mengimport package atau class java, Tidak ada seperti halnya pada program Java Session Menentukan apakah halaman JSP true menggunakan HTTP session Buffer Menentukan model buffering untuk output stream ke client autoflush Melakukan reset isi buffer jika sudah penuh true isthreadsafe Mendefinisikan tingkat keamanan true mengenai masalah threading halaman JSP. Jika false request akan diproses sebagai single Thread, berurutan sesuai urutan kedatangan request Info Mendefinisikan string informasi yang Tidak ada dapat diperoleh dari implementasi metode Servlet.getServletInfo() errorpage Menentukan error page, sehingga jika Tidak ada terjadi error, maka halaman JSP ini akan ditampilkan iserrorpage Memberikan indikasi apakah halaman JSP merupakan halaman error dari halaman JSP yang lain false contenttype Menentukan encoding karakter pada JSP MIME-TYPE dan tipe MIME untuk respons yang text / dihasilkan JSP. html CHARSET ISO-8859-1
a. Page Directive Contoh : <%@ page language= Java import="java.sql.* session= true buffer= 12kb autoflush= true errorpage= myerror.jsp %>
b. Include Directive Untuk menyisipkan isi file lain ke dalam file JSP Sintaks : <% include file= namafile %> Contoh : <% include file= myheader.html %>
c. Taglib Directive Untuk penggunaan tag library atau tag tambahan. Contoh : <%@ taglib url=http://latihan.com/tagkuprefix= test /> <test:proses> </test:proses>
2. Scripting Elements Terdiri dari tiga elemen, yaitu : a) Declarations b) Scriptlets c) Expression
a.declarations Declarations merupakan blok program Java yang digunakan untuk mendeklarasikan variable dan method yang akan digunakan dalam program. Variable yang dideklarasikan pada bagian ini akan berperan sebagai variable global pada servlet hasil kompile Sintaks : Contoh : <%! Deklarasi variable dan method %> <%! int i = 10 ; double x = 5.0 ; %>
b. Scriptlets Scriptlets merupakan blok program Java yang dieksekusi pada saat pemrosesan request. Scriptlets akan dijalankan sesuai dengan instruksi program yang diberikan. Sintaks : <% Sintaks Program Java %> Contoh : <% System.out.println( Test Scriptlets ); %>
c. Expression Expression merupakan cara untuk memperpendek penulisan scriptlets dan akan mengembalikan nilai String yang dikirim melalui output stream. Sintaks : <%= Ekspresi Java %>
Expression Contoh : <% String oanalisa=oanalisareview.getanalisa(oidk); %> <br> <fieldset style="padding: 2"> <legend><b>hasil Analisa dan Review</b></legend> <%=oanalisa%> -------------> Expression </fieldset>
3. Action Action merupakan tag yang mempengaruhi perilaku halaman JSP pada saat runtime. JSP mengenal tag action standar dan custom tag Tag action standar JSP adalah sebagai berikut : 1. <jsp:usebean> 2. <jsp:setproperty> 3. <jsp:getproperty> 4. <jsp:param> 5. <jsp:include> 6. <jsp:forward>
<jsp:usebean> Action tag ini berfungsi untuk menginstantiate suatu Java Object (Java Bean) agar kemudian dapat digunakan pada halaman JSP. Penggunaan bean ini merupakan salah satu cara untuk memisahkan antara logic dan presentation pada JSP Sintaks : <jsp:usebean id= name scope= scopename beandetail />
Atribut pada <jsp:usebean> Atribut Deskripsi Default Nilai id Nama untuk mengindentifikasi bean yang akan diinstantiate Tidak ada scope Jangkauan reference terhadap bean. Nilai yang tersedia untuk scope antara lain : page, request, session, application page class Nama class bean yang akan digunakan Tidak ada beanname Atribut khusus yang terkait dengan method instantiate() pada class java.beans.beans Tidak ada Type Menentukan tipe class Nilai dari atribut class Contoh : <jsp:usebean id="openilaian" scope="session" class="cbhrm.penilaian"/>
<jsp:setproperty> Action tag standar ini digunakan bersama dengan action tag <jsp:usebean>. Action tag ini berfungsi untuk men-set nilai properties yang terdapat pada bean. Sintaks : <jsp:setproperty name = beanname propertydetail /> Contoh : <jsp:setproperty name="openilaian" property="tglmul" param="tglmul"/>
<jsp:getproperty> Action tag ini merupakan kebalikan dari action tag <jsp:setproperty>, dimana berfungsi untuk mengambil nilai property pada Java Bean. Sintaks : <jsp:getproperty name = beanname property = propertyname /> Contoh : <jsp:setproperty property="tglmul" /> name="openilaian"
<jsp:param> Action tag ini berfungsi untuk menset nilai-nilai parameter yang akan digunakan dalam halaman JSP. Sintaks : <jsp:param name = parametername value = parametervalue /> Contoh : <jsp:param name = warna value = merah />
<jsp:include> Action tag ini memiliki fungsi yang serupa dengan directive <%@ include file = filename %>. Tetapi memiliki perbedaan mendasar, yaitu waktu eksekusi. Untuk tag <jsp:incluce> dieksekusi pada saat request dan directive include dieksekusi pada saat kompile.
<jsp:include> Sintaks : <jsp:include page = filename flush = true/false /> Contoh : <jsp:include page = mydynamic.jsp flush = true />
<jsp:forward> Action tag ini berfungsi untuk melakukan forward ke suatu halaman lain, baik halaman HTML atau JSP. Sintaks : <jsp:forward page = alamaturl /> Contoh : <jsp:forward page = alamaturl.jsp />
Form Form adalah salah satu tag HTML yang digunakan untuk mengirimkan suatu parameter dari satu halaman ke halaman lainnya Sebenarnya ada beberapa cara yang dapat digunakan untuk mengirimkan suatu nilai (parameter) dari satu halaman ke halaman lainnya, misalkan Form, URL parameter, cookie, session
Transfer Parameter dengan Form Halaman.html entry.jsp Suatu Form Login String User = request.getparameter( User ); String Pwd = request.getparameter( Pwd ); <FORM ACTION= entry.jsp METHOD= POST > User Name : <INPUT TYPE= TEXT NAME= User ><BR> Password : <INPUT TYPE= PASSWORD NAME= Pwd > <INPUT TYPE= SUBMIT VALUE= LOGIN > </FORM>
Transfer Parameter dengan URL Parameter
Transfer Parameter dengan Cookie Halaman.html Komputer Client entry.jsp Cookie
Transfer Parameter dengan Session Halaman.jsp Komputer Server entry.jsp Session
Membaca Parameter Menggunakan Obyek request dengan Metode getparameter() Contoh Pada file entry.jsp <% String User = request.getparameter( User ); String Pwd = request.getparameter( Pwd ); String Nama = request.getparameter( Nama ); String Tgl = request.getparameter( Tgl ); %>
HTTP Transfer Parameters Mengambil/membaca nilai parameter yang ditransfer melalui protokol HTTP String request.getparameter( parameter ) Contoh
Menangani Client Code Dengan Server Code/JSP Response Client Response Request JSP engine dan Web server Response File JSP Request Component Request
<html> <head> <title>alif file : Form.jsp</title> </head> <body> <p><fontsize="3"><b>menampilkan nilai variabel yang dimasukan melalui Form</b></font></p> <form method="post" action= AyoAmbilForm.jsp"> <table width="646"> <tr> <td width="87">nama</td> Form.jsp <td colspan="3"> <input type="text" name="nama"></td> </tr> <tr> <td>proyek</td> <td colspan="3"><input type="text" name= proyek"></td> </tr> </table> <p><input type="submit" value="submit"> <input type="reset" value="reset"></p> </form> AyoAmbilForm.jsp </body> </html>
<html> <head> <title>alif file : AyoAmbilForm.jsp</title> </head> <body> <p><font size="3"><b>menampilkan Data Yang Anda Masukan Melalui Form</b></font></p> <% String nama = request.getparameter("nama"); String proyek= request.getparameter( proyek"); %><form method="post" action="form.jsp"><% if(nama!= null&& nama.length()>0){ %> <table width="386"> <tr> <td width="108">nama</td> </tr> <tr> <td>proyek</td> </tr> </table> <% } else { %> <b>nama Belum Anda Masukan</b> <% } %> <p> </p> <p><input type="submit" value="back"> </p> </form> </body> </html> AyoAmbilForm.jsp
JSP???Database???Wowwww JSP sebagai teknologi untuk pembuatan aplikasi web memiliki kemampuan menangani database dengan menggunakan class dan interface Java Database Connectivity ( JDBC ) sebagai driver antara program JSP dan database server
JDBC JDBC adalah Application Programming Interface (API) yang dikembangkan oleh Sun Microsystem untuk menyediakan akses data universal dalam bahasa pemrograman Java. JDBC menyediakan mekanisme untuk koneksi database, query database, dan traksaksi database. JDBC tidak melakukan standarisasi SQL, tetapi dapat mendukung sintaks SQL untuk masingmasing vendor database
Diagram JDBC Driver SQL Server Program Java / JSP JDBC Driver My SQL Driver Oracle JDBC bukan database server, tetapi merupakan penyedia mekanisme untuk berkomunikasi antara aplikasi Java dan database server
Contoh Akses Database dengan JSP
Tampilan Output (Running)
Struktur Tabel Dalam Database
<%@page import= java.sql.* %> <html> <head> <title>list Data Pegawai</title> </head> <body> <%! Connection koneksi; String nama_db; String user_mysql; String pass_mysql; Statement stm; ResultSet rst; int no; %> <% try{ Class.forName( com.mysql.jdbc.driver ); nama_db= jdbc:mysql://localhost:3306/hrd ; user_mysql= alif ; pass_mysql= rise ; koneksi = DriverManager.getConnection(nama_db, user_mysql, pass_mysql); }catch(exception e){ out.print( Gagal koneksi ke database +e); } stm=koneksi.createstatement(); rst=stm.executequery( SELECT * FROM pegawai ); out.print( <table border= 1 ><tr><th>no</th><th>nama Pegawai</th> ); out.print( <th>jenis Kelamin</th><th>Alamat</th><th>Kota</th><th colspan= 2 ></th></tr> ); no=1; while(rst.next()){ out.print( <tr> ); out.print( <td> +no+ </td><td> +rst.getstring( emp_name )+ </td> ); out.print( <td> +rst.getstring( emp_sex )+ </td> ); out.print( <td> +rst.getstring( emp_address )+ </td> ); out.print( <td> +rst.getstring( emp_city )+ </td> ); out.print( <td><a href=edit_pegawai.jsp/ +rst.getstring( emp_no )+ >Edit</a> </td> ); out.print( <td><a href=hapus_pegawai.jsp/ +rst.getstring( emp_no )+ >Hapus</a> </td> ); out.print( </tr> ); no++; } out.print( </table> ); %> </body>
Terima Kasih Semoga Bermanfaat
Bahan Ajar UAS Materi sebelum UTS Soal UTS Materi setelah UTS Pelajari cara buat code untuk melakukan edit dan delete pada slide Contoh Akses Database dengan JSP
Aturan UAS Open Book Waktu 60 menit Dalam bentuk TULIS (Berbasis pengetahuan tentang pemrograman web +Live Coding) Pelaksanaan : Jum at,21 Desember 2012 Pukul 13.30 (harus tepat waktu)-14.30 Tempat : di ruang kuliah biasanya