Senin, 19 Januari 2009

JSP (Java Server Pages)

JSP (Java Server Pages)

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 dan fungsi-fungsi dari JSP itu sendiri. Berbeda dengan Servlet yang harus dikompilasi oleh USER menjadi class sebelum dijalankan, JSP tidak perlu dikompilasi oleh USER tapi SERVER yang akan melakukan tugas tersebut. Karena itu pada saat user membuat pertama kali atau melakukan modifikasi halaman dan mengeksekusinya pada web browser akan memakan sedikit waktu sebelum ditampilkan.

Java Server Pages (JSP) merupakan perluasan dari spesifikasi Java Servlet, yang bertujuan untuk menyederhanakan dalam pengembangan suatu content yang dinamis. JSP merupakan bagian dari teknologi J2EE, bersama-sama dengan Servet, EJB, JNDI, XML.

JSP dan Servlet bekerja dalam suatu lingkungan web container yang menyediakan koneksi dan service, sedangkan JSP dan Servlet mengontrol presentasi data yang dihasilkan dari suatu proses untuk dikirimkan ke client.

Seperti tipe aplikasi java lainnya (Servlet, Applet, Midlet dll), JSP juga bertipe Strong Type artinya penggunaan variable pada halaman tersebut harus dideklarasikan terlebih dahulu. Misalnya pada sintaks pengulangan berikut:

for (int i=1; i<13;>

{

// statement

}

Seperti halnya skrip-skrip server side yang lain, JSP pun memerlukan Web server. Skrip ASP memerlukan IIS sebagai web server, PHP memerlukan IIS atau Apache, sedangkan JSP bisa menggunakan Apache Tomcat sebagai salah satu web server yang mendukungnya.

Seperti halnya ASP dan PHP, skrip JSP terintegrasi dengan kode-kode HTML. Untuk itu diperlukan pembatas awal dan akhir dimana elemen JSP diletakkan. Pembatas yang digunakan adalah tanda berikut ini:

<%

// element JSP

%>

Sebuah JSP ketika akan dijalankan, web container akan memeriksa status class servlet terakhir, jika belum ada atau berstatus lama, maka container akan melakukan kompilasi terhadap file JSP untuk dihasilkan suatu servlet yang menerapka interface HttpJspPage berdasar isi dari halaman JSP. Dari Servlet inilah kemudian dijalankan method _jspService untuk menghasilkan response dengan menggunakan class HttpServletRequest dan HttpServletResponse.

Untuk dapat menggunakan JSP, terdapat dua package tambahan lain yaitu :

● package javax.servlet.jsp

berisi kelas-kelas dan method utama JSP

● package javax.servlet.jsp.tagtest

berisi kelas-kelas dan method untuk custom tag

JSP memiliki tiga fase daur hidup: initialization, service, dan destruction

Jika disimak pada potongan source berikut <%= new java.util.Date()%> Ini adalah potongan kode Java yang berfungsi untuk menampilkan tanggal dan waktu sekarang. Dilakukan dengan cara membuat instance objek Date dan menampilkan dalam bentuk String.

JSP dapat berjalan pada aplikasi web dalam IDE. Asumsikan projek telah ada, secara simple taruh file JSP dalam folder Web Pages didalam Project view. Halaman JSP dapat dijalankan langsung dari IDE dengan menekan tombol Shift + F6. Kemungkinan lain adalah web project dijadikan package sebagai file WAR dan mengupload kedalam server.

JSP dapat diakses dengan mengetik URL berikut:

http://[host]:[port]/[WEB_PROJECT_NAME]/[JSP_NAME]

Selain itu JSP dapat berjalan dengan cara mempackage kedalam file WAR menggunakan build tool (seperti yang dijelaskan dalam bab Basic Servlet), kemudian men-deploy file WAR ke web server.

Komponen JSP digolongkan menjadi dua, elements dan template data. Pada hello.jsp, ekpresi <%= new java.util.Date()%> adalah element dan sisanya adalah template data.

Hello World!

Kontainer JSP mendukung dua tipe sintaks: Gaya JSP dan Gaya XML. Pengembang lebih menyukai sintaks XML ketika menggunakan JSP authoring tool karena lebih mudah dipahami.

Elemen Script JSP

Terdiri dari 3: Scriptlets, Expressions, dan Declarations.

Scriptlets ( <% ... %> )

media untuk memasukkan kode bit Java diantara potongan template data, mempunyai bentuk:

<% Java code; %>

Expressions ( <%= %>)

Digunakan untuk menginputkan nilai Java langsung kedalam output. Bentuk ekspresinya:

<%= Java Expression %>

Declarations ( <%! %> )

Digunakan untuk mendefinisikan method atau variabel. Bentuk Ekspresinya:

<%! Java Code %>

Setiap halaman JSP berisi variabel penunjuk ke objek servlet yang disebut objek implisit yang sudah terdefinisikan dan siap digunakan. Variabel ini memiliki ruang lingkup :

1. Application

- Dimiliki oleh container JSP

- dapat dimanipulasi oleh sembarang Servlet atau aplikasi

2. Page

- Ada pada halaman yang mendefinisikan

- Instance individu untuk tiap halaman

3. Request

- ada selama waktu Request

4. Session

- ada untuk selama session client

Berikut adalah objek implisit yang disediakan : Tipe Fungsi

1. Application

Application type: javax.servlet.ServletContext

Berisi atribut seluruh aplikasi

2. Page Scope

Config type: javax.servlet.ServletConfig

Sebagai Objek representasi dari konfigurasi JSP yang tersimpan pada Web

3. Descriptor (web.xml)

Exception type: java.lang.Throwable

Sebagai directive untuk halaman error

4. out type: javax.servlet.jsp.JspWriter

Output stream untuk responseNama Tipe Fungsi

5. response type: javax.servlet.ServletRequest

Membuat output response

6. pages type: java.lang.Object

Sebagai this untuk menunjuk ke halamannya sendiri

7. pageContext type: javax.servlet.jsp.PageContext

Berisi atribut halaman

8. Request

Request type: javax.servlet.ServletRequest

Wakil dari Request user

9. Session

Session type: javax.servlet.http.HttpSession

Berisi variabel yang disertakan pada session user

Mendefinisikan atribut yang digunakan oleh seluruh halaman JSP. Contoh pemakaiannya

<%@ page language=”java” import=”java.util.*, java.io.*” %>

Beberapa atribut directive page :

1. language

Mendefinisikan bahasa yang digunakan pada code fragmen

2. extends

Mendefinisikan kelas induk dari servlet yang dihasilkan

3. import

Mendefinisikan daftar kelas-kelas yang diimport

4. session

Menentukan apakah sebuah objek session harus didefinisikan

5. buffer

Mengontrol ukuran buffer keluaran response

6. autoFlush

Jika 'false', jika terjadi buffer overflow akan muncul exception, jika 'true', buffer akan diflush ke stream output

7. isThreadSafe

Jika 'false', container JSP hanya mengerjakan 1 request sat waktu.

8. info

Mendefinisikan suatu String yang dapat dipanggil dengan method getServletInfo()

9. errorPage

Mendefinisikan URL yang akan dikirimi sembarang objek Exception atau Error

10. isErrorPage

Jika 'true', page aktif adalah error page juga

11. contentType

Mendefinisikan nilai tipe header MIME

Untuk memasukan text dari suatu file lain. Berikut bentuk elementnya:

<%@ include file=”/xxxx/cr.txt” %>



0 komentar: