JSP (Java Server Pages) - … · Servlet?????(Java???) • Sebelum menginjak ke JSP, kita harus...

55
JSP (Java Server Pages) Muhamad Alif, S.Kom

Transcript of JSP (Java Server Pages) - … · Servlet?????(Java???) • Sebelum menginjak ke JSP, kita harus...

JSP(Java Server Pages)

Muhamad Alif, S.Kom

Servlet?????(Java???)

• Sebelum menginjak ke JSP, kita harus tahuterlebih dahulu dinamic code dari java untukpengembangan web application.

• Servlet???

• Servlet=class yang didefinisikan dalam javadan digunakan untuk meningkatkankemampuan web server dalam menanganirequest dan response client

Servlet (1)

• Servlet dapat menerima request danmenghasilkan response melalui protokolkomunikasi yang berbeda, tetapi sebagianbesar tipe yang digunakan adalah HTTP

• Java memiliki dua paket yang menyediakaninterface dan class untuk servlet, yaitujavax.servlet dan javax.servlet.http

Ambil dan Kirim Data

• Dua tipe request yang paling umum digunakan adalah GETdan POST, yang sering disebut sebagai request method.

• Request GET digunakan untuk mendapatkan ataumenerima informasi dari server yang berupa file HTML atauimage.

• Request POST digunakan untuk mengirimkan data keserver dalam bentuk HTML yang berisi data yangdimasukan oleh client.

• Method yang sering digunakan untuk memberikan responterhadap request client adalah doGet dan doPost yangmemiliki dua parameter, yaitu HttpServletRequest danHttpServletResponse

Method ServletRequestMethod 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 darirequest 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 bahasascripting untuk web programming yangbersifat server side seperti halnya PHP danASP.

• JSP dapat berupa gabungan antara baris HTML(Client Code) dan fungsi-fungsi dari JSP itusendiri.

JSP?????

• JSP bertujuan untuk menyederhanakanpembuatan dan manajemen halaman web yangbersifat dinamis, dengan cara memisahkancontent dan presentasi

• JSP merupakan halaman yang menggabungkanHTML dengan scripting tag dan program java

• Pada saat JSP dipanggil client melalui browser,JSP tersebut akan di kompile terlebih dahulumenjadi servlet, dan kemudian hasilnyadikembalikan ke client

Ilustrasi JSP

Bean Bean

<HTML>

<BODY>

Beberapa Contents Static

<% Beberapa kode Java %>

<%jsp:BeberapaTagJsp%>

</BODY>

</HTML>

Diterjemahkan Servlet

UsesUses

Kelebihan JSP

• JSP dapat berjalan pada sembarang platform.

• JSP cenderung memiliki performansi yang lebihbaik, karena JSP dilakukan kompile terlebihdahulu menjadi servlet yang berupa bytecode.

• Didukung bahasa Java yang memilki kemampuanOOP dan tingkat reuseability tinggi.

• Dapat menggunakan JavaBean untukmengenkapsulasi kode-kode java.

Kelemahan JSP

• Proses kompile terhadap halaman JSPmengakibatkan client harus menunggu lebihlama pada saat pertama kali di lakukanloading. Hal ini tentu saja menyebabkankecepatan proses JSP secara menyeluruhberkurang.

Elemen-elemen JSP• Struktur halaman JSP adalah penambahan program

Java dalam tag <% %> pada suatu halaman HTMLuntuk membangkitkan content yang bersifatdinamik.

• JSP memiliki tiga komponen utama, yaitu :1. Directives : merupakan suatu petunjuk bagi web

container tentang sesuatu yang harus dilakukanpada saat container melakukan compile halamanJSP.

2. Scripting Elements : tag untuk menuliskanprogram Java.

3. Action : special tag yang memberikan pengaruhpada 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 atribut-atribut pada halaman JSP serta memberikan informasi ke container untuk atribut-atribut yang memerlukan proses tertentu.

• Sintaks :

<%@ page ATTRIBUTE %>

Contoh :

a. Page DirectiveAttribute Keterangan Default Nilai

Language Menentukan bahasa pemrograman yang

digunakan

“Java”

Extends Digunakan untuk men-generate superclass Tidak adaImport 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 clientautoFlush 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 metodeServlet.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 JSPdan 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 :

<% 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 Javayang digunakan untuk mendeklarasikanvariable dan method yang akan digunakandalam program. Variable yang dideklarasikanpada bagian ini akan berperan sebagaivariable global pada servlet hasil kompile

• Sintaks :

<%! Deklarasi variable dan method %>

• Contoh :

<%! 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 meng-instantiate suatu Java Object (Java Bean) agarkemudian dapat digunakan pada halaman JSP.Penggunaan bean ini merupakan salah satucara untuk memisahkan antara logic danpresentation 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 tersediauntuk scope antara lain : page, request, session,

application

“page”

class Nama class bean yang akan digunakan Tidak ada

beanName Atribut khusus yang terkait dengan methodinstantiate() 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 bersamadengan action tag <jsp:useBean>. Action tagini berfungsi untuk men-set nilai propertiesyang 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 actiontag <jsp:setProperty>, dimana berfungsi untukmengambil nilai property pada Java Bean.

• Sintaks :

<jsp:getProperty name = ”beanName”property = “propertyName” />

• Contoh :

<jsp:setProperty name="oPenilaian"property="tglMul" />

<jsp:param>

• Action tag ini berfungsi untuk menset nilai-nilaiparameter yang akan digunakan dalam halamanJSP.

• Sintaks :

<jsp:param name = “parameterName” value =“parametervalue” />

• Contoh :

<jsp:param name = “warna” value = “merah” />

<jsp:include>

• Action tag ini memiliki fungsi yang serupadengan directive <%@ include file =“fileName” %>. Tetapi memiliki perbedaanmendasar, yaitu waktu eksekusi.

• Untuk tag <jsp:incluce> dieksekusi pada saatrequest dan directive include dieksekusi padasaat 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 yangdigunakan untuk mengirimkan suatuparameter dari satu halaman ke halamanlainnya

– Sebenarnya ada beberapa cara yang dapatdigunakan untuk mengirimkan suatu nilai(parameter) dari satu halaman ke halamanlainnya, 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

Komputer Client

Transfer Parameter dengan Cookie

Halaman.html entry.jsp

Cookie

Transfer Parameter dengan Session

Komputer ServerHalaman.jsp 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

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

AyoAmbilForm.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>&nbsp;</p>

<p><input type="submit" value="Back">

</p>

</form>

</body>

</html>

AyoAmbilForm.jsp

JSP???Database???Wowwww

• JSP sebagai teknologi untuk pembuatanaplikasi web memiliki kemampuan menanganidatabase dengan menggunakan class daninterface Java Database Connectivity ( JDBC )sebagai driver antara program JSP dandatabase server

JDBC

• JDBC adalah Application ProgrammingInterface (API) yang dikembangkan oleh SunMicrosystem untuk menyediakan akses datauniversal dalam bahasa pemrograman Java.

• JDBC menyediakan mekanisme untuk koneksidatabase, query database, dan traksaksidatabase.

• JDBC tidak melakukan standarisasi SQL, tetapidapat mendukung sintaks SQL untuk masing-masing vendor database

Diagram JDBC

• JDBC bukan database server, tetapimerupakan penyedia mekanisme untukberkomunikasi antara aplikasi Java dandatabase server

SQL Server

My SQL

Oracle

Driver

Driver

Driver

JDBCProgram

Java / JSP

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>

</html>

Terima Kasih

Semoga Bermanfaat

Bahan Ajar UAS

• Materi sebelum UTS

• Soal UTS

• Materi setelah UTS

• Pelajari cara buat code untuk melakukan editdan 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