JSP
(Java Server Pages)
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
Method ServletRequest
Method Keterangan
String getParameter(String name)
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)
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
Ilustrasi JSP
Bean Bean
<HTML> <BODY>
Beberapa Contents Static <% Beberapa kode Java %> <%jsp:BeberapaTagJsp%> </BODY> </HTML> Diterjemahkan Servlet Uses Uses
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
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
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 atribut-atribut pada halaman JSP serta memberikan informasi ke container untuk atribut-atribut yang memerlukan proses tertentu.
• Sintaks :
<%@ page ATTRIBUTE %> Contoh :
a. Page Directive
Attribute Keterangan Default Nilai
Language Menentukan bahasa pemrograman yang digunakan
“Java” Extends Digunakan untuk men-generate superclass Tidak ada Import Mengimport package atau class java,
seperti halnya pada program Java
Tidak ada Session Menentukan apakah halaman JSP
menggunakan HTTP session
“true” Buffer Menentukan model buffering untuk
output stream ke client
autoFlush Melakukan reset isi buffer jika sudah penuh
“true” isThreadSafe Mendefinisikan tingkat keamanan
mengenai masalah threading halaman JSP. Jika “false” request akan diproses sebagai single Thread, berurutan sesuai urutan kedatangan request
“true”
Info Mendefinisikan string informasi yang dapat diperoleh dari implementasi metode Servlet.getServletInfo()
Tidak ada errorPage Menentukan error page, sehingga jika
terjadi error, maka halaman JSP ini akan ditampilkan
Tidak ada isErrorPage Memberikan indikasi apakah halaman JSP
merupakan halaman error dari halaman JSP yang lain
“false” contentType Menentukan encoding karakter pada JSP
dan tipe MIME untuk respons yang dihasilkan JSP. MIME-TYPE text / 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 :
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
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 :
<%! Deklarasi variable dan method %> • Contoh :
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 :
c. Expression
• Expression merupakan cara untuk
memperpendek penulisan scriptlets dan akan mengembalikan nilai String yang dikirim
melalui output stream. • Sintaks :
Expression
Contoh : <% String oAnalisa=oAnalisaReview.getAnalisa(oIDK); %> <br> <fieldset style="padding: 2"><legend><b>Hasil Analisa dan Review</b></legend> <%=oAnalisa%> ---> Expression
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 meng-instantiate 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 di-instantiate
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: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 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: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 :
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
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
Komputer Client
Transfer Parameter dengan Cookie
Halaman.html entry.jsp
Transfer Parameter dengan Session
Komputer Server
Halaman.jsp entry.jsp
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
Client JSP engine dan Web server File JSP Component Request Response Request Request Response Response<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>
<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>
</body> </html>
Form.jsp
<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>
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 masing-masing vendor database
Diagram JDBC
• JDBC bukan database server, tetapi
merupakan penyedia mekanisme untuk
berkomunikasi antara aplikasi Java dan
database server SQL Server My SQL Oracle Driver Driver Driver JDBC Program Java / JSP
<%@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> </html>
Terima Kasih
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