Selamat mengunjungi blog saya...

Rabu, 12 Desember 2012

JAVA SERVER PAGES

Java Server Pages (JSP) merupakan sebuah tenologi servlet-based yang digunakan pada web tier untuk menghadirkan dynamic dan static content. JSP merupakan text-based dan kebanyakan berisi template text HTML yang digabungkan dengan spesifik tags dynamic content.

Alasan Menggunakan JSP
  1. Sejak JSPs merupakan dokumen text seperti HTML, para pengembang menghindari format dan manipulasi yang memungkinkan String yang sangat panjang untuk menghasilkan output. Content HTML sekarang tidak ditempelkan dengan berbagai macam kode dari Java. Hal ini membuatnya lebih mudah untuk dipelihara.
  2. JSPs lebih dikenal oleh semua orang dengan pengetahuan dari HTML, hanya dengan mempelajari markup dynamic. Hal ini membuatnya mungkin untuk para desainer site untuk membuat template HTML dari sebuah site, dengan para pengembang memprosesnya suatu saat nanti untuk memasukkan tags yang menghasilkan dynamic content. Hal ini juga memudahkan dalam pengembangan web page.
  3. JSPs memiliki built-in yang mendukung untuk penggunaan komponen software yang dapat digunakan kembali(JavaBeans). Hal ini tidak hanya membiarkan para pengembang menghindari kemungkinan menemukan kembali inti/kemudi dari tiap aplikasi, mempunyai software pendukung untuk memisahkan komponen software untuk menghandle logic promotes separation dari presentasi dan business logic.
  4. JSPs, merupakan bagian solusi dari Java untuk pengembang aplikasi web, merupakan multi-platform yang tak terpisahkan dan dapat dijalankan pada berbagai container servlet yang compatible, dengan mengabaikan vendor atau sistem operasinya.
  5. Dalam kaitannya dengan cara kerja JSPs, mereka tidak membutuhkan kompilasi dari para pengembang. Kompilasi ini telah ada untuk kita pada kontainer servlet. Modifikasi JSPs dideteksi secara otomatis. Hal ini secara relatif membuatnya mudah untuk dibangun.

Contoh JSP
 <html>
<head><title>Contoh JSP</title>
</head>
<body>
Waktu sekarang : <%= new java.util.Date() %>
</body>
</html>
Gambar diatas adalah file JSP yang simple yang melakukan penyambutan untuk site user sebagai penginformasian tanggal dan waktu saat ini untuk user.
Dari contoh diatas, kita dapat melihat bahwa file JSP merupakan sebagian besar dari HTML. Hanya pada bagian ini yang beda :
<%= new java.util.Date()%>
Hal ini merupakan bagian dari kode Java untuk menampilkan hari dan tanggal pada saat itu juga. Hal ini mempermudah unutk membuat objek baru untuk membuat objek Date dan menampilkannya sebagai String.
Alur JSP
Container servlet mengatur JSPs pada suatu cara untuk mengatur servlet itu sendiri melalui penggunaan suatu alur JSP maka dapat dijalankan dengan baik.
JSPs memiliki tiga fase alur : inisialisasi, servis, dan destruksi. Fase-fase ini sama dengan method servlet yang diambil dari container yang berbeda : jspInit() untuk inisialisasi fase, _jspService() untuk servis fase, dan jspDestroy() untuk mendestruksi fase.

Dari contoh JSP yang telah diberikan, terlihat membingungkan untuk membahas method jspInit atau _jspService(). Contoh dari JSP hanya simple text page yang kebanyakan berasal dari content HTML : dia tidak memiliki method yang lain. Jawaban dari ha tersebut adalah : JSPs di-compile kedalam class servlet yang sama oleh server. Hal ini menyebabkan class servlet yang menangani permintaan untuk page JSP. Translasi ini dimasukkan kedalam servlet dan kompilasi subsequent telah selesai digunakan oleh server : para pengembang tidak perlu ragu-ragu tentang bagaimana prosedure ini diselesaikan.

Pemrograman Dengan Java Server Pages


-->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
<%= "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\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 :
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.

sumber :  http://rendyriskianto.blogspot.com/2010/07/pemrograman-dengan-java-server-pages.html




Tidak ada komentar:

Posting Komentar