English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

Pemrograman dengan Java Server Pages (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. Sebagai ilustrasi diberikan pada gambar sebagai berikut :

Gambar Pemrosesan Halaman JSP

Kelebihan JSP

  1. JSP dapat berjalan pada sembarang platform.
  2. JSP cenderung memiliki performansi yang lebih baik, karena JSP dilakukan kompile terlebih dahulu menjadi servlet yang berupa bytecode.
  3. Didukung bahasa Java yang memilki kemampuan OOP dan tingkat reuseability tinggi.
  4. Dapat menggunakan JavaBean untuk mengenkapsulasi kode-kode java.

Kelemahan JSP

  1. 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.

Listing Program

<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size: 10pt; font-family: "><span style=""> </span>Hello World Menggunakan JSP<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size: 10pt; font-family: "><span style=""> </span>

<%= "Hello World JSP Sederhana"%>

Seperti yang dijelaskan diatas, bahwa halaman JSP akan dilakukan kompile menjadi servlet yang diberikan pada Listing program sebagai berikut :

Listing Program

package LatihJsp;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

public class helloWorld1_2 extends org.apache.jasper.runtime.HttpJspBase {

static {

}

public helloWorld1_2( ) {

}

private boolean _jspx_inited = false;

public final synchronized void _jspx_init() throws org.apache.jasper.JasperException {

if (! _jspx_inited) {

_jspx_inited = true;

}

}

public void _jspService(HttpServletRequest request, HttpServletResponse response)

throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;

PageContext pageContext = null;

HttpSession session = null;

ServletContext application = null;

ServletConfig config = null;

JspWriter out = null;

Object page = this;

String _value = null;

try {

try {

_jspx_init();

_jspxFactory = JspFactory.getDefaultFactory();

response.setContentType("text/html;charset=ISO-8859-1");

pageContext = _jspxFactory.getPageContext(this, request, response,

"", true, 8192, true);

application = pageContext.getServletContext();

config = pageContext.getServletConfig();

session = pageContext.getSession();

out = pageContext.getOut();

// HTML // begin [file="D:\\jakarta-tomcat-3.3.1\\webapps\\ROOT\\latihJsp\\helloWorld1.jsp";from=(0,0);to=(9,1)]

out.write("\r\n\r\n\r\n\r\n\t\r\n\t\tHello World Menggunakan JSP\r\n\t\r\n\r\n\r\n\t");

// end

// begin [file="D:\\jakarta-tomcat-3.3.1\\webapps\\ROOT\\latihJsp\\helloWorld1.jsp";from=(9,4);to=(9,32)]

out.print( "Hello World JSP Sederhana");

// end

// HTML // begin [file="D:\\jakarta-tomcat-3.3.1\\webapps\\ROOT\\latihJsp\\helloWorld1.jsp";from=(9,34);to=(11,7)]

out.write("\r\n\r\n");

// end

} catch (Exception ex) {

if (out != null && out.getBufferSize() != 0)

out.clearBuffer();

if (pageContext != null) pageContext.handlePageException(ex);

} catch (Error error) {

throw error;

} catch (Throwable throwable) {

throw new ServletException(throwable);

}

} finally {

if (out instanceof org.apache.jasper.runtime.JspWriterImpl) {

((org.apache.jasper.runtime.JspWriterImpl)out).flushBuffer();

}

if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);

}

}

}

Jika dijalankan pada browser dengan alamat URL :

http://localhost:8080/LatihJSP/helloWorld.jsp

Maka akan menampilkan tampilan sebagai berikut :

Gambar Tampilan helloWorld.jsp pada Browser

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.

Directives

Sintaks :

<%@ namaDirective attribute1=”value1” attribute2 =”value2” %>

Directives terdiri dari tiga bagian, yaitu :

  1. Page Directive
  2. Include Directive
  3. Taglib Directive

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 %>

Attribute yang digunakan pada Page Directive diberikan pada tabel sebagai berikut :

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

Contoh :

<%@ page language=”Java” import="java.sql.*“ session=”true” buffer=”12kb” autoFlush=”true” errorPage=”myError.JSP” %>

Include Directive

Untuk menyisipkan isi file lain ke dalam file JSP

Sintaks :

<% include file=”namaFile” %>

Contoh :

<% include file=”myHeader.html” %>

Taglib Directive

Untuk penggunaan tag library atau tag tambahan.

Contoh :

<%@ taglib url=http://Latihan.com/tagKu prefix=”test” />

Scripting Elements

Terdiri dari tiga elemen, yaitu :

  1. Declarations
  2. Scriptlets
  3. Expression

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 :

<%! int i = 10 ; double x = 5.0 ; %>

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”); %>

Expression

Expression merupakan cara untuk memperpendek penulisan scriptlets dan akan mengembalikan nilai String yang dikirim melalui output stream.

Sintaks :

<%= Ekspresi Java %>

Contoh :

<%

String oAnalisa=oAnalisaReview.getAnalisa(oIDK);

%>


Hasil Analisa dan Review

<%=oAnalisa%> -------------> Expression

Action

Action merupakan tag yang mempengaruhi perilaku halaman JSP pada saat runtime. JSP mengenal tag action standar dan custom tag. Tag standar adalah tag yang didefinisikan dalam spesifikasi JSP, sedangkan custom tag adalah tag baru yang dapat didefinisikan sendiri. Pada bagian ini hanya dibahas mengenai tag action standar.

Tag action standar JSP adalah sebagai berikut :








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. Logic yang digunakan pada JSP dapat diletakkan pada suatu bean, dan bean ini dapat digunakan untuk halaman JSP yang lain.

Sintaks :

Untuk beanDetail berupa salah satu dibawah ini :

class = “className”

class = “className” type = “typeName”

beanName = “beanName” type = “typeName”

type = “typeName”

Atribut pada action tag dapat dilihat pada tabel sebagai berikut :

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 :

Action tag standar ini digunakan bersama dengan action tag . Action tag ini berfungsi untuk men-set nilai properties yang terdapat pada bean.

Sintaks :

Untuk propertyDetail adalah sebagai berikut :

property = “*”

property = “propertyName”

property = “propertyName” param = “parameterName”

property = “propertyName” value = “propertyValue”

Contoh :

Action tag ini merupakan kebalikan dari action tag , dimana berfungsi untuk mengambil nilai property pada Java Bean.

Sintaks :

Contoh :

Action tag ini berfungsi untuk menset nilai-nilai parameter yang akan digunakan dalam halaman JSP.

Sintaks :

Contoh :

Action tag ini memiliki fungsi yang serupa dengan directive <%@ include file = “fileName” %>. Tetapi memiliki perbedaan mendasar, yaitu waktu eksekusi. Untuk tag dieksekusi pada saat request dan directive include dieksekusi pada saat kompile.

Hasil eksekusi dari keduanya adalah sama dan dapat digunakan untuk melakukan include halaman statis atau dinamis.

Action tag ini sebaiknya digunakan jika halaman yang di-include-kan sering mengalami perubahan secara dinamis, tetapi jika tidak mengalami perubahan sebaiknya digunkan directive include. Hal ini didasarkan pada proses kompile ulang halaman JSP. Pada directive jika halaman JSP yang meng-include halaman JSP lain tidak berubah, sedangkan halaman JSP yang di-include-kan mengalami perubahan, maka kompile ulang belum tentu dilakukan. Tetapi pada action tag kompile ulang pasti akan dilakukan karena proses include dilakukan pada saat melakukan proses terhadap request.

Sintaks :

Contoh :

Action tag ini berfungsi untuk melakukan forward ke suatu halaman lain, baik halaman HTML atau JSP.

Sintaks :

Contoh :

Action tag ini untuk menghasilkan kode-kode yang sesuai target browser dalam menyisipkan komponen Java bean atau applet secara otomatis.



Aris Puji Widodo

Kuliah Umum IlmuKomputer.Com

Copyright ©2003 - 2006 IlmuKomputer.Com

lintasberita

Share |

8 comments:

Dedy Izham Balas Komentar mengatakan...

PertamaX...., gan.
. keren blognya gan. Lam kenal, aku juga anak SMKpur. Tanya ama guru MM kalau binggung dengan aku. Cz aku baru LULUS tahun ini gan.
. Seneng juga bisa ketemu blog keluarga di Internet.
. Lam kenal ya.....
. Tingkat kan terus budaya BLOGGING....

fangol Balas Komentar mengatakan...

makasih atas info nya

Junaedi Balas Komentar mengatakan...

Hallo salam kenal maukah menjadi follower di blog saya

anak ganteng Balas Komentar mengatakan...

sediain ebook ya donk om,,,biar ane download,,,,hehehh

candra purnama | candra bloggers Balas Komentar mengatakan...

ijiin sedot ilmunya om

Achmad Balas Komentar mengatakan...

Wah..bermanfaat sekali sob,ane baru mau belajar JSP nih,thx. :)

Unknown Balas Komentar mengatakan...

terima kasih atas ilmunya, sangat membantu sekali

Muhammad Tofik Balas Komentar mengatakan...

Mantap bang blogny dan makasih juga ilmunya ane jadi tau pemrogramman java server pages deh jadinya. jangan lupa juga ya mampir di blog ane tentang Mengenal Tag html dasar thanks

Posting Komentar

Jangan Lupa Tinggalkan Komentar anda Untuk Perbaikan Blog Ini!


Bila Anda Bingung Gunakan Tombol TAB

Silakan Pasang Link Anda Di Bawah Ini Dan Jangan Lupa Pasang Balik Link saya.
Thanks,
Recent Comment And Contact Us
foxyform.com
 
Selamat datang di Rendy'site | Terimah kasih atas kunjungannya. Tanbahkan komentar dan saran anda untuk perubahan yang lebih baik pada blog ini !