• Tidak ada hasil yang ditemukan

BAB 4 JSP Dasar - JENI Web Programming Bab 4 Dasar JSP

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 4 JSP Dasar - JENI Web Programming Bab 4 Dasar JSP"

Copied!
20
0
0

Teks penuh

(1)

BAB 4

JSP D a sa r

4 .1 Pe n ge n a la n

Pada bab sebelum nya, kit a t elah belaj ar bagaim ana m enghasilkan dynam ic cont ent unt uk user kit a dengan m enggunakan t eknologi Java m elalui penggunaan servlet s. Bagaim anapun j uga, ket ika pengem bang Java dapat m em buat sit es dengan sem acam dynam ic cont ent hanya dengan m enggunakan servlet , ada beberapa kerugian dengan m enggunakannya.

Pert am a, hanya dengan m enggunakan servlet unt uk m enghasilkan isi HTML t idak m em but uhkan pem eliharaan yang banyak at au clean code. St rings yang digunakan unt uk out put HTML dapat m enj adi sangat besar – spanning m ult iple lines – dan dapat dengan m udah pem eliharaannya m enj adi rum it .

Kedua, hanya dengan m enggunakan servlet s unt uk m enghasilkan isi HTML dapat diasum sikan bahwa para pengem bang t elah m engenal Java & HTML dengan baik. Secara khusus dalam kasus sebuah organisasi yang besar, desiner sit e m erupakan bagian dari kelom pok program m er. Dengan m elat ih para desainer t ent ang pem aham an Java, at au unt uk m em iliki pengem bang Java yang ahli dalam desain sit e HTML dapat dikonsum si dan/ at au sebuah akt ifit as yang baik unt uk sebuah organisasi.

Hal ini dim ana t eknologi JSP m ulai digunakan.

4 .2 Tu j u a n

4 .2 .1 Apa k a h JSP it u ?

Java Server Pages ( JSP) m erupakan sebuah t enologi servlet - based yang digunakan pada web t ier unt uk m enghadirkan dynam ic dan st at ic cont ent . JSP m erupakan t ext - based dan kebanyakan berisi t em plat e t ext HTML yang digabungkan dengan spesifik t ags dynam ic cont ent .

4 .2 .2 Ke na pa m e n ggu na k a n JSP?

− Sej ak JSPs m erupakan dokum en t ext sepert i HTML, para pengem bang m enghindari form at dan m anipulasi yang m em ungkinkan St ring yang sangat panj ang unt uk m enghasilkan out put . Cont ent HTML sekarang t idak dit em pelkan dengan berbagai m acam kode dari Java. Hal ini m em buat nya lebih m udah unt uk dipelihara.

− JSPs lebih dikenal oleh sem ua orang dengan penget ahuan dari HTML, hanya dengan m em pelaj ar i m arkup dynam ic. Hal ini m em buat nya m ungkin unt uk para desainer sit e unt uk m em buat t em plat e HTML dari sebuah sit e, dengan para pengem bang m em prosesnya suat u saat nant i unt uk m em asukkan t ags yang m enghasilkan dynam ic cont ent . Hal ini j uga m em udahkan dalam pengem bangan web page.

− JSPs m em iliki built - in yang m endukung unt uk penggunaan kom ponen soft ware yang dapat digunakan kem bali( Jav aBeans) . Hal ini t idak hanya m em biarkan para pengem bang m enghindari kem ungkinan m enem ukan kem bali int i/ kem udi dari t iap aplikasi, m em punyai soft w are pendukung unt uk m em isahkan kom ponen soft w are unt uk m enghandle logic prom ot es separat ion dari present asi dan business logic.

− JSPs, m erupakan bagian solusi dari Java unt uk pengem bang aplikasi web, m erupakan m ult i- plat form yang t ak t erpisahkan dan dapat dij alankan pada berbagai cont ainer servlet

(2)

yang com pat ible, dengan m engabaikan vendor at au sist em operasinya.

− Dalam kait annya dengan cara kerj a JSPs, m ereka t idak m em but uhkan kom pilasi dari para pengem bang. Kom pilasi ini t elah ada unt uk kit a pada kont ainer servlet . Modifikasi JSPs didet eksi secara ot om at is. Hal ini secara relat if m em buat nya m udah unt uk dibangun.

4 .2 .3 Con t oh JSP

<HTML>

<TITLE>Selamat Datang</TITLE>

<BODY>

<H1> Greetings!</H1> <br>

Terimakasih telah mengakses site kami. <br>

Waktu hari ini <%= new java.util.Date()%>

</BODY>

</HTML>

selamatdatang.jsp

Gam bar diat as adalah file JSP yang sim ple yang m elakukan penyam but an unt uk sit e user sebagai penginform asian t anggal dan w akt u saat ini unt uk user.

Dari cont oh diat as, kit a dapat m elihat bahwa file JSP m erupakan sebagian besar dari HTML. Hanya pada bagian ini yang beda :

< % = new j ava.ut il.Dat e( ) % >

Hal ini m erupakan bagian dari kode Java unt uk m enam pilkan hari dan t anggal pada saat it u j uga. Hal ini m em per m udah unut k m em buat obj ek baru unt uk m em buat obj ek Dat e dan m enam pilkannya sebagai St ring.

Dibaw ah ini m erupakan hasil out put dari file JSP t ersebut diat as.

(3)

4 .2 .4 M e n ggu na k a n I D E En t e r pr ise

P dapat dij alankan dari berbagai m acam proj ek aplikasi web pada I DE. Dengan asum si

pesifikasi dari file JSP ini kem udian dapat dij alankan dari I DE secara langsung dengan

ht t p: / / [ host ] : [ port ] / [ WEB_PROJECT_NAME] / [ JSP_NAME] JS

bahwa proj ek t elah siap.

S

m enekan SHI FT + F6. Alt ernat if lain, proj ect web dapat dij alankan sebagai file WAR dan diupload kedalam server. Kem udian JSP dapat diakses dengan m enget ikan URL berikut ini:

(4)

4 .2 .5 M e n ggu na k a n bu ild t ool

kan dengan m enyim pannya sebagai file WAR dengan m enggunakan

t rukt ur direkt ori

engem bangan st rukt ur direkt ori t elah didisk usikan pada awal bab, file JSP harus disim pan

.2 .6 Alu r JSP

ont ainer servlet m engat ur JSPs pada suat u cara unt uk m engat ur servlet it u sendiri : Melalui

Ps m em ilki t iga fase alur : inisialisasi, ser vis, dan dest ruksi. Fase- fase ini sam a dengan JSP j uga dapat dij alan

build t ool( Sepert i salah sat u out lined pada bab Servlet Dasar) , dan kem udian m enj alankanfile WAR kedalam web server.

S

P

pada web direkt ori.

4

C

penggunaan suat u alur JSP m aka dapat dij alankan dengan baik. JS

m et hod servlet yang diam bil dari cont ainer yang berbeda : j spI nit ( ) unt uk inisialisasi fase, _j spService( ) unt uk servis fase, dan j spDest roy( ) unt uk m endest ruksi fase.

(5)

Dari cont oh JSP yang t elah diberikan, t erlihat m em bingungkan unt uk m em bahas m et hod

ka anda berharap unt uk m elihat class servlet yang di- generat e, inst alasi dar i sun aplikasi

${SERVER_HOME}/domains/domain1/generated/jsp/j2ee-modules/

ada halam an selanj ut nya m erupakan persam aan servlet dari cont oh JSP kit a.

j spI nit at au _j spService( ) . Cont oh dari JSP hanya sim ple t ext page yang kebanyakan berasal dari cont ent HTML : dia t idak m em ilik i m et hod yang lain. Jawaban dari ha t ersebut adalah : JSPs di- com pile kedalam class servlet yang sam a oleh server. Hal ini m enyebabkan class servlet yang m enangani perm int aan unt uk page JSP. Translasi ini dim asukkan kedalam ser vlet dan kom pilasi subsequent t elah selesai digunakan oleh server : para pengem bang t idak perlu ragu- ragu t ent ang bagaim ana prosedure ini diselesaikan.

Ji

server 8.1 m enem pat kan m ereka pada direkt ori ini :

${WEB_APP_NAME}/org/apache/jsp

P

(6)

Package org.apache.jsp;

import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*;

public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent {

private static java.util.Vector _jspx_dependants;

public java.util.List getDependants() { return _jspx_dependants;

}

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;

JspWriter _jspx_out = null;

PageContext _jspx_page_context = null;

try {

_jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html");

response.addHeader("X-Powered-By", "JSP/2.0");

pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);

_jspx_page_context = pageContext;

application = pageContext.getServletContext(); config = pageContext.getServletConfig();

session = pageContext.getSession(); out = pageContext.getOut();

_jspx_out = out;

out.write("<HTML>\n"); out.write("\n");

out.write(" <TITLE>Welcome</TITLE>\n");

(7)

Dasar JSP 7

Bukan hal yang pent ing unt uk m engert i k ode diat as. Hal yang pent ing disini adalah unt uk m elihat bahw a JSPs dit angani sepert i Serv let , m eskipun t idak dapat dilihat secara j elas. Poin lain disini adalah bahwa JSP m erupakan Servlet . Mereka hanya berbeda pada cara seorang pengem bang dalam m enghasilkan cont ent : JSPs lebih berorient asi pada t ext , m eskipun servlet s m em perbolehkan para pengem bang m enggunakan kode Java.

4 .3

Syn t a x JSP da n Se m a n t ics

Meskipun JSP berbasis Java, dan dikendalikan sebagai k ode Java oleh servlet , m em perbolehkan pengem bang unt uk m enggunakan synt ax yang berbeda pada spesifikasi Java 2.0 dan sebagai gant inya m enggunakan at uran spesifikasi JSP. Bagian berikut ini m enggam barkan synt ax JSP dengan lebih det ail.

4 .3 .1 Ele m e n t - e le m e n t da n D a t a Te m pla t e

Sem ua kom ponen Java Server Pages dapat dibagi m enj adi dua kat egori um um : elem ent s dan

t em plat es dat a. Elem ent m erupakan dynam ically yang m enghasilkan inform asi. Dat a t em plat e m erupakan inform asi st at ic yang m em perhat ikan present asi. Pada hello.j sp, ekspresi JSP, <%= new java.util.Date()%> adalah sat u- sat unya elem ent dat a yang m em anggil dat a t em plat e.

(8)

<center>

<h1>Hello World! It's <%= new java.util.Date()%></h1> </center>

</body> </html>

4 .3 .2 D ua Tipe Sy n t a x

Dua t ipe dari aut horing JSP didukung oleh Cont ainer JSP : JSP St yle dan XML St yle.

Keduanya t erm asuk dalam bab ini. Mem ilih salah sat u form at synt ax hanya bergant ung dari preference dan st andarisasi. Norm al synt ax didesain lebih m udah unt uk pada pem buat ( aut hor) . XML- com pat ible ynt ax t elah disediakan ket ika m enggunakan JSP aut horing t ools. Bagaim anapun j uga, yang lebih sering disediakan adalah norm al synt ax karena dia lebih m udah unt uk dibaca dan dim engert i. Text ini akan m enggunakan norm al synt ax pada cont oh-cont ohnya.

4 .3 .3 Scr ipt in g Ele m e n t s

Sepert i yang t elah dij elaskan pada bab sebelum nya, JSPs m em ungkinkan unt uk dilihat sebagai HTML at au XML dokum en dengan berdasar pada Script JSP. Script ing JSP elem ent m em perbolehkan anda m em asukkan kode Java kedalam Servlet yang akan di- generat e dari halam an JSP.

Cara t erm udah unt uk m em buat dynam ic JSP adalah dengan m enaruh script ing elem ent kedalam dat a t em plat e.

Script let s m enyediakan cara unt uk m em asukkan bit s dari kode Java diant ara chunks dari dat a t em plat e dan m em iliki form berikut ini :

<% Java code; %>

Menggam barkan kode Java diant ara < % dan % > sam a sepert i m enulis kode Java secara norm al kecuali disana t idak dibut uhkan unt uk deklarasi class. Script let s bagus digunakan pada kode j ava sepert i pernyat aan kondisional loops, dll. Disana t idak ada bat asan secara spesifik sebagai kom pleksit as dari kode j ava yang harus disim pan diant ara script let s. Bagaim anapun j uga, kit a harus m elak ukan t indakan pencegahan pada pem akaian script let s yang berlebihan. Menaruh perhit ungan yang berat didalam script let s m erupakan isu dari penggunaan kode. Juga, Menggunakan script let s ext ensively violat es JSPs r ole m enj adi kom ponen present at ion layer yang ut am a.

Berikut nya kit a akan m endiskusikan bagaim ana kit a dapat m enggunakan JavaBeans unt uk enkapsulasi dat a result s passed dari kom ponen lain, Secara drast is m engurangi j um lah dar i script let s yang dibut uhkan pada halam an. Bahkan kem udian, kit a akan m endiskusikan bagaim ana cara m enggunakan cust om t ags unt uk m enyediakan com m on t asks sepert i looping, logic branching, dll. Hal ini dikom binasikan dengan JabaBeans m enggunakan cut script let .

(9)

Jika anda ingin m enggunakan karakt er "% > " didalam script let , t ulislah " % \ > " sebagai gant inya. Hal ini akan m encegah com piler dari pengint er pret asian karakt er sebagai penut up t ag script let .

Dibawah ini m erupaka dua cont oh yang m enggam barkan cont oh kode Java yang sangat sim ple diant ara t ag HTML.

Con t oh : Sim ple Pr in t ln Print lnScript let .j sp

Cont oh diat as m erupakan ilust rasi yang m udah t ent ang kode Java didalam JSP Anda. Kode diat as m enghasilkan out put t ext , j edi, kedalam web brow ser.

Con t oh : For - Loop pa da scr ipt le t LoopScript let .j sp

Cont oh diat as m enam pilkan im plem ent asi kode Java dari for- loop didalam t ag script let ( < % ...% > ) .

Unt uk out put nya dapat Anda lihat set elah m enj alankan JSP ini dan m enghasilkan t ext “ This line is print ed 10 t im es.” Dicet ak 10 kali dalam kait annya dengan m enj alankan for- loop unt uk it erasi 0 sam pai 9 sepert i yang dit am pilkan pada ilust rasi 8.1.

(10)

I ngat la bahwa script let it u sendiri t idak dikirim ke client t et api hanya sebagai out put nya. Cobalah unt uk m elihat source dari out put JSP yang anda hasilkan di browser Anda unt uk m em aham i point ini. Anda harus m elihat t ag- t ag HTML dan out put script let .

Akhirnya, synt ax XML- com pat ible unt uk m enulis script let s adalah: <jsp:declaration>

Java code;

</jsp:declaration>.

4 .3 .5 Ex pr e ssi ( < % = % > )

Expressi m enyediakan cara unt uk m em asukkan nilai Jav a secara langsung kedalam out put . Hal ini m em ilk i form sepert i berikut ini:

<%= Java Expression %>

Sebenarnya hal ini dapat m enggunakan out .print ln( ) .

Cat at an bahw a t anda ( ; ) t idak dit am pilkan pada akhir kode didalam t ag.

Expressi java yang laindisimpan diantara < % = dan % > yang dievaluasi pada saat run- t im e, yang dikonversi kedalam st ring, dan dim asukkan kedalam page. Expressi selalu m engirim st ring t ext ke client , t et api obj ect yang dihasilkan sebagai hasil dari expressi yang t idak m em erlukan nilai inst an obj ect sebagai st ring. Sem ua yang bukan obj ect st ring secara inst an dikonversi m elalui m et hod toString(). Jika hasilnya prim it ive, kem udian st ring prim it ive akan dit am pilkan. Illustrasi 8. 1: LoopScriptlet.jsp Output

Hal t ersebut akan dij elaskan t erlebih dulu bahwa pada saat run- t im e( ket ika ada request page) , hal ini akan m em berikan expressi akses penuh unt uk inform asi t ent ang request .

Sebuah nom er dari v ariabel yang t elah dikenali sebenarnya t elah t ersedia unt uk aut hor JSP unt uk expressi yang m udah. Variable yang t elah dikenali ini disebut im plicit obj e ct s dan berikut ini akan kit a bahas secara det ail. Unt uk t uj uan dari expression, yang t erpent ing

(11)

adalah:

o request, HttpServletRequest;

o response, HttpServletResponse;

o session, HttpSession associated dengan request (jika ada); dan

o out, PrintWriter (versi buffered dari tipe JspWriter) digunakan untuk mengirim output ke client.

Sebagai cont ohnya, unt uk m encet ak host nam e, Anda hanya but uh unt uk m em asukkan expressi j sp dibawah ini:

Hostname: <%= request.getRemoteHost() %>

Akhirnya, synt ax XML- com pat ible synt ax unt uk <%= Java Expression %> adalah: <jsp:expression>

Java Expression </jsp:expression>

4 .3 .6 D e k la r a si ( < % ! % > )

Deklarasi m em perbolehkan anda unt uk m enggam barkan m et hod at au variable. Dia m em ilk i form sepert i dibawah ini:

<%! Java Code %>

Deklarasi digunakan unt uk m elet akkan kode hanya sepert i script let t et api deklarasi dapat dim asukkan kedalam m ain bosy dari class servlet , diluar dari proses request m et hod _jspService(). Unt uk alasan ini kode dilet akkan pada deklarasi dapat digunakan unt uk m endeklarasikan m et hod baru dan variabel class global. Dalam hal yang lain, kode pada deklarasi t idak selalu am an, kecuali diprogram t erlebih dahulu oleh aut hor JSP, perlu diperhat ikan adalah padasaat m enulis deklarasi JSP.

Berikut ini m erupakan hal yang perlu diingat dalam m enggunakan t ag deklarasi: o Sebelum deklarasi Anda harus m enuliskan < % !

o Pada akhir deklarasi, developer harus m enuliskan % > o Kode pada t ag harus diakhiri dengan t anda baca ( ; ) .

o Deklarasi t idak m en- generat e out pt t et api digunakan dengan expressi JSP at au script let .

Sej ak deklarasi t idak m en- generat e out pt u apapun, m ereka sering digunakan pada konj ungsi dengan expressi JSP at au script let . Sebagai cont ohnya, ada sebuah JSP yang m encet ak angka dari wakt u current page t elah direquest sej ak server at au class servlet t elah dirubah.

(12)

Con t oh

AccessCount Declarat ion.j sp

JSP dapat m encet ak angka dari visit s dengan m endeklarasikan variabel class- wide accessCount, m enggunakan script let unt uk m eningkat kan nilai dari angka dari sebuah page visit dan sebuah expressi unut k m enam pilkan nilainya.

I llust rasi 8.3 m enam pilkan cont oh dari JSP page yang direfresh sebanyak 4 kali.

Illustrasi 8.2: AccessCountDeclaration.jsp output

Unt uk m enget ahui bagaim ana JSP page dit ranslasi kedalam sebuah servlet m ari kit a uj i out put servlet dari cont ainer JSP kit a unt uk AccessCount Declarat ion.j sp. Cont ainer JSP m en- generat e sebuah file Java yang m em anggil AccessCount Declarat ion_j sp.j ava dan isinya. I ngat lah bahw a deklarasi, script let dan expressi t elah digaribawahi unt uk referensi t erm udah.

List in g 2 : AccessCount Declarat ion_j sp.j ava

package org.apache.jsp.JSP;

import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*;

public final class AccessCountDeclaration_jsp extends org.apache.jasper.runtime.HttpJspBase

implements org.apache.jasper.runtime.JspSourceDependent {

private int accessCount = 0;

private static java.util.Vector _jspx_dependants;

public java.util.List getDependants() {

return _jspx_dependants;

(13)

}

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;

JspWriter _jspx_out = null;

PageContext _jspx_page_context = null;

try {

_jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html");

pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);

_jspx_page_context = pageContext;

application = pageContext.getServletContext(); config = pageContext.getServletConfig();

session = pageContext.getSession();

out.write("<title>Declaration Example</title>\n"); out.write("</head>\n");

out.write("<body>\n"); accessCount++;

(14)

}

}

I ngat lah bagaim ana deklarasi unt uk accessCount dilet akkan diluar m et hod _j spservice( ) sebagai anggot a variable. Hal ini m em buat accessCount diperbolehkan t idak hanya unt uk m et hod _j spservice( ) t et api unt u m et hod yang lain digam barkan dalam JSP. Menguj i kode t erdahulu m enunj ukkan kepada kit a t ent ang penem pat an yang t epat sebuah deklarasi, script let s dan expressi pada kode source Java yang dit ranslasi dari page HTML.

Akhirnya, ingat lah bahwa synt ax t he XML- com pat ible synt ax unt uk <%! JavaCode %> adalah <jsp:declaration>

Pada diskusi t ent ang t ag expressi kit a m enem ukan obj ect yang t ersem bunyi. Pem bahasan ini m enggam barkan obj ect t ersebut secara det ail.

Obj ect - obj ect JSP yang t ersem bunyi secara ot om at is dideklarasikan oleh cont ainer JSP dan selalu t ersedia dalam penggunaan expressi dan script let s ( t et api t idak didalam deklarasi) . Berikut ini m erupakan daft ar obj ect - obj ect yang t ersem bunyi ( im plicit obj ect s) :

r e que st: Kej adian dari obj ect javax.servlet.http.HttpServletRequest dihubungkan dengan request dari client .

r e spon se: Kej adian dari obj ect javax.servlet.http.HttpServletResponse dihubungkan dengan response ke client .

pa ge Con t e x t: Obj ect PageContext dihubungkan dengan halam an sebelum nya.

ou t: Referensi obj ect javax.servlet.jsp.JspWriter dapat digunakan unt uk m enulis act ion dan dat a t em plat e dalam page JSP, sam a dengan hal t ersebut dari obj ect Print Writ er kit a gunakan pada saat m endiskusikan servlet . Variable t ersem bunyi ( im plicit var iable) out secara ot om at is diinialisasi dengan m enggunakan m et hod pada obj ect PageContext.

se ssion: Kej adian dari obj ect javax.servlet.http.HttpSession. Kej adian ini sam a unt uk m em anggil m et hod HttpServletRequest.getSession().

a pplica t ion: Obj ect ServletContext is an inst ance of t he javax.servlet.ServletContext. Kej adian ini sam a dengan m em anggil m et hod getServletConfig().getContext(). I m plicit obj ect ini disharing oleh sem ua serv let s dan JSP pages pada server.

con fig: Config dari im plicit obj ect m erupakan kej adian dari obj ect javax.servlet.ServletConfig unt uk page ini. Sam a halnya dengan sebagai Servlet s, JSPs m em iliki akses unt uk m enginisialisasi param et er yang t erdapat pada Web Applicat ion Deploym ent Descript or.

(15)

4 .3 .8 JSP D ir e ct iv e s

Direct ive m erupakan pesan unt uk cont ainer JSP. Mereka m em pengaruhi seluruh st rukt ur dar i class servlet . Hal t ersebut m em ilik i form sepert i berikut ini:

Direct ive t idak m enam pilkan berbagai hasil out put ket ika ada perm int aan pada page t et api m ereka m erubah cara JSP engina dalam m em proses page t ersebut . Sebagai cont ohnya, Anda dapat m em buat session dat a yang t idak t ersedia pada page dengan m engeset direct ive page ( session) bernilai false.

JSP direct ive m em ber ikan inform asi yang spesial t ent ang page kepada JSP Engine. Directive dapat m enj adi sat u dalam page, yait u include at au taglib. Masing- m asing direct ives t ersebut m em ilik i set t ing at ribut nya sendiri- sendiri.

4 .3 .8 .1 Pa ge dir e ct ive

Page direct ive m enggam barkan proses inform asi unt uk sebuah page. Hal t ersebut m em perbolehkan Anda unt uk m eng- im port class, cust om ize superclass servlet .

Direct ive m em iliki pilihan at ribut sepert i dibawah ini yang m enyediakan JSP Engine dengan proses infor m asi yang spesial. I ngat lah bahwa dibawah ini adalah daft ar at ribut yang bersifat cesa- sensit ive:

Directive Pengertian Contoh Penggunaan

e x t e n ds Superclass digunaka oleh JSP Engine unt uk m en- t ranslasi Servlet . Menj adi t ranslat or unt uk keyword ext ends pada bahasa pem rogram an Java.

<%@ page extends = “com.taglib…” %>

La n gu a ge Mengindikasikan script ing language yang digunakan pada script let s, expressi dan deklarasi yang dit em ukan pada page JSP yang digunakan.

<%@ page import = “java.util.*” %>

(16)

Directive Pengertian Contoh Penggunaan

Se ssion Menandai apakah page

m enggunakan sessions.Unt uk session dat a pada sem ua page JSP m em iliki default session dat a available. Merubah session ke false m em iliki hasil yang benefit .

Defaultnya adalah true.

bu ffe r Mengont rol penggunaan out put buffered unt uk page JSP. Jika bernilai none, m aka t idak ada buffer dan out put dit ulid secara langsung disesuaikan pada PrintWriter. Nilai default dari buffer adalah 8kb.

<%@ page buffer = “none” %>

a u t oFlu sh Ket ika diset t rue, flushes akan akt if ket ika out put buffer penuh.

<%@ page autoFlush = “true” %>

isTh r e a dSa fe Mengindikasikan j ika Servlet yang di- generat e set uj u dengan berbagai request . Jika bernilai t rue,t hread yang baru akan m enangani request secara bersam aan. Nilai default nya adalah t rue.

in fo Para pengem bang

m enggunakan info at ribut unt uk m enam bah inform asi / dokum en unt uk suat u page. Biasanya digunakan unt uk m enam bah aut hor, versi, copyright dan info t anggal.

<%@ page info = “jeni.org test page, alpha version “ %>

e r r or Pa ge Menam pilkan halam an yang berisi t ent ang kesalahan yang t erj adi. URL harus m enuj u ke

(17)

4 .3 .8 .2 I n clu de dir e ct ive

I nclude direct ive m enggam barkan file- file yang harus dim asukkan pada halam an. Hal t ersebut m em bolehk an Anda m em asukkan sebuah file kedalam class Servlet ( unt uk m em asukkan isi dari sebuha file yang berada didalam file lain) selam a t r a n sla t ion t im e. Biasanya, include file digunakan unt uk navigasi, t able, header dan foot er, dll. – kom ponen- kom ponen yang diperbolehkan unt uk berbagai halam an.

Berikut ini synt ax unt uk include direct ive:

<%@ include file = "relativeURL" %>

Cont oh, j ika Anda ingin unt uk m em asukkan sebuah m enubar yang akan dit em ukan pada direct ory yang Anda inginkan, Anda dapat m enulis:

<%@ include file = "menubar.jsp" %>

4 .3 .8 .3 Ta g Lib dir e ct ive

Sebuah t ag library m er upakan kum pulan dari cust om t ags. Taglib direct ive m enggam barkan bagaim ana t ag library digunakan pada sebuah halam an. Berikut ini cara penulisan t aglibs:

<%@ taglib uri = “tag library URI” prefix = “tag Prefix” %>

Direct ive ini m em berit ahu cont ainer dim ana m arkup pada halam an harus disesuaikan dengan dengan cust om code dan kode m arkup link apa yang dipakai. Kit a am bil cont ohnya dari index.j sp pada list ing dibawah ini. Pada baris pert am a m enj elaskan bahwa index.j sp m enggunakan cust om code “ st rut s/ t em plat e” dan prefis “ t em plat e” unt uk penulisan yang lebih m udah. Penggant ian referensi t aglib yang baik dilakukan dengan m em refix m arkup- nya.

in de x .j sp

<%@ taglib uri="struts/template" prefix="template" %>

<template:insert template="/WEB-INF/view/template.jsp">

<template:put name="header" content="/WEB-INF/view/header.jsp" />

<template:put name="content" content="/WEB-INF/view/index_content.jsp" /> <template:put name="footer" content="/WEB-INF/view/footer.jsp" />

</template:insert>

Cust om t ag yang t elah dikenalkan pada JSP 1.1 dan m em perbolehkaan para pengem bang JSP unt uk m enyem bunyikan com plex server side code dari web designer.

(18)

4 .4 Ja va Be a n s

pa da

JSP

Kegunaan dari JavaBeans t idak hanya digunakan pada spesifikasi JSP. Bagaim anapun j uga, m ereka m enyediakan fungsi yang m udah digunakan, oleh karena it u kegunaan dari JavaBean dapat sangat m engurangi j um lah dari elem en script ing yang dapat dit em ukan pada sebuah halam an Java.

Yang paling ut am a, dari lat ihan JavaBean adalah: JavaBean hanya m erupakan class Java sederhana yang m em pert ahankan st andart peng- codingan:

• Menyediakan default , konst rukt or t anpa argum en

• Menyediakan m et hod get dan set unt uk propert i yang akan digunakan. Berikut ini cont oh dari class JavaBean yang sederhana:

package jeni.beans;

public void setAddress(String address) { this.address = address;

}

public String getContactNo() { return contactNo;

}

public void setContactNo(String contactNo) { this.contactNo = contactNo;

} }

Bagaim ana seharusnya JavaBean digunakan dalam JSP?

• Sebagai Dat a Transfer Obj ect - JavaBeans lebih sering digunakan dalam JSPs sebagai obj ect yang m engirim dat a dari source lain. Pada sebagian besar aplikasi, proses diselesaikan didalam servlet , bukan didalam JSP. Pada suat u form dari sat u at au lebih JavaBean t idak hanya sebuah hasil yang dilew at kan kedalam JSP.

• Sebagai Helper obj ect - pada beberapa aplikasi kecil, t idak efisien unt uk m em ilik i separat e servlet unt uk m em proses dat a. Pada kasus ini, lebih baiknya m enyim pan fungsi- fungsi kedalam JavaBean dim ana dapat diakses oleh JSP.

(19)

4 .4 .1 Ja va Be a n s- dih ubu ngk a n de nga n JSP Act ion

JSP m enggam barkan bahwa st andard act ion m enyederhanakan kegunaan dari JavaBean. < j sp:u se Be a n>

Unt uk m enggunakan kom ponen Java Bean, hal pert am a yang harus dipikirkan adalah m em ungkinkan penggunaan sebuah bean dengan halam an m elalui inst ant iat ion, apa yang dapat kit a lakukan dengan act ion t ersebut .

Berikut ini adalah at ribut e dari < j sp: useBean> act ion:

id – At ibut ini m enet apkan nam a dari bean dan bagaim ana Anda dapat m enunj uk bean pada sebuah halam an.

scope – At ribut ini m enet apkan lingkup dim ana Anda akan m enyim pan bean inst ance. Scope dapat diset ke page( sebagai default ) , session, request , at au applicat ion.

cla ss - At ribut ini m enet apkan class Java dari bean berasal. Jika Anda m enet apkan nam aBean, Anda t idak perlu m enet apkan classnya.

be a n N a m e - At ribut ini m enet apkan nam a dari bean yang disim pan pada server. Anda dapat m enunj uk kepadanya dengan sebuah class ( cont oh, com .proj ect alpha.PowerBean) . Jika Anda m enet apkan class, Anda t idak perlu unt uk m enet apkan beanNam e.

t ype - At ribut ini m enet apkan t ipe dari var iabel scr ipt ing yang dikem balikan oleh bean. Tipe t ersebut harus dihubungkan ke class dari bean.

Berikut ini m erupakan cont oh bagaim ana m enggunakan Usesr JavaBean pada halam an JSP: <jsp:useBean id="user" scope="session" class="jeni.bean.User"/>

Ket ikan halam an m enghadapi useBean act ion, pert am a perlu m encoba unt uk m elihat j ika disana t elah ada JavaBean inst ance yang m em ber ik an lokasi t ipe dalam scope yang disediakan. Jika ada, m aka halam an akan m em buat use dari bean inst ance. Jika t idak ada, secara ot om at is cont ainer akan m em buat bean inst ance yang baru m enggunakan default bean cont ruct or t anpa argum ent dan m elet akkan bean pada scope yang disediakan.

Jika kem am puan diat as digam barkan sebagai script let , akan t erlihat sepert i berik ut ini: <%

jeni.bean.User user = (jeni.bean.User)session.getAttribute("user"); if (user == null) {

Act ion ini m endapat kan kem bali nilai dari propert i yang dit et apkan didalam JavaBean dan seket ika m enghasilkan out put sebagai t anggapan.

Act ion ini m em iliki dua at ribut :

• nam e – nam a dari JavaBean yang propert inya akan didapat kan kem bali. Hal ini haris m em iliki nilai yang sam a sebagai id at r ibut yang digunakan pada awal < j sp: useBean> act ion

• propert y – nam a dari propert i yang valuenya akan didapat kan kem bali.

Jika para pengem bang berharap unt uk dapat m endapat kan kem bali nilai dar i sebuah propert i JavaBean t anpa m enghasilkan out put sebagai t anggapan, m aka t idak ada pilihan j ika

(20)

m enggunakan script let s at au EL ( akan dibahas pada bab berikut nya) .

Melanj ut kan dari lat ihan kit a sebelum nya, unt uk m enam pilkan nam a propert i dari t he User JavaBean, kit a dapat m enggunakan t he get Propert y act ion dibawah ini:

<jsp:getProperty name="user" property="name"/>

< j sp:se t Pr ope r t y>

Act ion ini m em perbolehkan para pengem bang unt uk m engeset propert i yang diberikan JavaBean t anpa harus m enulis kode script let .

Act ion ini m em iliki propert i yang sam a dengan get Propert y act ion, dengan beberapa penam bahan:

• value – sebuah nilai harus diset didalam propert i. Hal ini dapat berupa nilai st at ic at au sebuah ekspresi yang dapat dievaluasi pada saat runt im e.

• param – m enet apkan param et er request dari propert i yang akan m endapat kan kem bali sebuah nilai. Penem pat an * sebagai nilai param

Para pengem bang m enggunakan act ion ini harus dengan sat u spesifikasi dari at ribut value at au param . Pada kedua at ribut t ersebut didalam act ion akan m enyebabkan suat u pengecualian/ except ion yang harus dihilangkan.

4 .5 Pe n a n ga n a n

Er r or

JSPs dapat m enggunakan halam an yang direct ive unt uk m enspesifikasi halam an yang akan m enangani berbagai ex cept ion. At ribut errorPage dari page dir ect ive dapat dilew at kan sebuah relat iv URL ke JSP page yang didesain unt uk halam an yang error. Halam an yang didesain unt uk error at ribut isErrorPage dapat diset t rue. Hal ini akan m em berikan akses unt uk im plicit obj ect yang dinam ai except ion – hal ini berisi t ent ang det ail dari except ion.

Berikut ini adalah cont oh unt uk errorPage : <%@page isErrorPage="true"%>

<HTML>

<TITLE>Error!</TITLE> <BODY>

<H1>An Error has occurred.</H1><br/>

Sorry, but an error has occurred with the page you were previously accessing. Please contact any member of the support team, and inform them that <%= exception.getMessage() %> was the cause of the error

</BODY> </HTML>

Gambar

Gambar diatas adalah file JSP yang simple yang melakukan penyambutan untuk site user sebagai penginformasian tanggal dan waktu saat ini untuk user

Referensi

Dokumen terkait

1 2011 Penelusuran Dokumen Abstrak Skripsi Mahasiswa sebagai Salah Satu Upaya Peningkatan Kualitas Penulisan Tugas Akhir di Jurusan Pendidikan Bahasa Inggris (Penelitian

Perakaran buah naga bersifat epifit, merambat dan menempel pada tanaman lain. Dalam pembudidayaannya, dibuat tiang penopang untuk merambatkan

Maka hal-hal tersebut yang semakin berkembang pesat disebut sebagai Modernisasi yang hadir di kehidupan sosial masyarakat yang pada saat ini sudah banyak berpengaruh

[r]

JavaScript dan Ajax yang rumit, sehingga hanya dengan beberapa baris kode, kita bisa membuat website dengan tingkat interaktivitas yang tinggi (responsif), bahkan membuat

Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Sains pada Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam. © Siti

[r]

[r]