Anda di halaman 1dari 12

Tutorial Dasar Java Server Pages (JSP)

Pengenalan JSP
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.
Client
Web Browser HTML, Applet, Image, dll. Perangkat dengan Kemampuan Internet

HTML, XML, Objek, Multimedia, dsb Server pengendali presentasi Web Server/Web Container JavaServer pages

Files

Servlets

SQL, Resultset, XML Business Logic Enterprise JavaBean, Java Bean, JDBC SQL, Resultset, XML Database Database Server

Server yang menangani permintaan JSP seperti sebuah kompiler halaman yang menggabungkan template HTML dengan kode Java yang dinyatakan pada elemen 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 :
JSP Budi Susanto 1

package javax.servlet.jsp berisi kelas-kelas dan method utama JSP package javax.servlet.jsp.tagtest berisi kelas-kelas dan method untuk custom tag

Membuat JSP Pertama


Perhatikan contoh now.jsp berikut :
<%@page contentType="text/html"%> <html> <head> <title>JSP Page</title> <meta http-equiv = "refresh" content = "60" /> <style type = "text/css"> .big { font-family: helvetica, arial, sans-serif; font-weight: bold; font-size: 2em; } </style> </head> <body> <div class="big">Tanggal dan Jam saat ini : <%= new java.util.Date() %> </div> </body> </html>

Tag asli JSP pada dokumen HTML adalah


Tag <%-<%= --%> %> Fungsi Komentar Ekspresi (sebagai String) Contoh <%-- ini komentar --%> <%= new java.util.Date()%>

JSP Budi Susanto

Tag <%! <% %> %>

Fungsi Deklarasi Fragmen Kode Program

Contoh <%! Date d = new Date();%> <% for (int i=0;i<10;i++) %>

<%@

%>

Directive

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

Objek Implisit
Setiap halaman JSP berisi variabel penunjuk ke objek servlet yang disebut objek implisit yang sudah terdefinisikan dan siap digunakan. Variabel ini memiliki ruang lingkup :
Scope Application Page Request Session Keterangan - Dimiliki oleh container JSP - dapat dimanipulasi oleh sembarang Servlet atau aplikasi - Ada pada halaman yang mendefinisikan - Instance individu untuk tiap halaman - ada selama waktu Request - ada untuk selama session client

Berikut adalah objek implisit yang disediakan :


Nama Application application Page Scope config javax.servlet.ServletConfig Sebagai Objek representasi dari konfigurasi JSP yang tersimpan pada Web Descriptor (web.xml) Sebagai directive untuk halaman error Output stream untuk response javax.servlet.ServletContext Berisi atribut seluruh aplikasi Tipe Fungsi

exception out

java.lang.Throwable javax.servlet.jsp.JspWriter

JSP Budi Susanto

Nama

Tipe

Fungsi

response pages

javax.servlet.ServletRequest java.lang.Object

Membuat output response Sebagai this untuk menunjuk ke halamannya sendiri Berisi atribut halaman

pageContext Request request Session session

javax.servlet.jsp.PageContext

javax.servlet.ServletRequest

Wakil dari Request user

javax.servlet.http.HttpSession

Berisi variabel yang disertakan pada session user

Contoh (oimpl.jsp):
<%@page contentType="text/html"%> <html> <head><title>Objek Implisit</title></head> <body> <BODY> <H2>Mencoba Objek Implisit</H2> <UL> <LI>Waktu saat ini: <%= new java.util.Date() %> <LI>Server: <%= application.getServerInfo() %> <LI>Session ID: <%= session.getId() %> <LI>Nilai parameter <CODE>Nama</CODE> : <%= request.getParameter("Nama") %> </UL> </BODY></HTML>

Directive
page Directive

JSP Budi Susanto

Mendefinisikan atribut yang digunakan oleh seluruh halaman JSP. Contoh pemakaiannya :
<%@ page language=java import=java.util.*, java.io.* %>

Beberapa atribut directive page :


Atribut language extends import session buffer autoFlush isThreadSafe info errorPage isErrorPage contentType Keterangan Mendefinisikan bahasa yang digunakan pada code fragmen Mendefinisikan kelas induk dari servlet yang dihasilkan Mendefinisikan daftar kelas-kelas yang diimport Menentukan apakah sebuah objek session harus didefinisikan Mengontrol ukuran buffer keluaran response Jika 'false', jika terjadi buffer overflow akan muncul exception, jika 'true', buffer akan diflush ke stream output Jika 'false', container JSP hanya mengerjakan 1 request sat waktu. Mendefinisikan suatu String yang dapat dipanggil dengan method getServletInfo() Mendefinisikan URL yang akan dikirimi sembarang objek Exception atau Error Jika 'true', page aktif adalah error page juga Mendefinisikan nilai tipe header MIME

include Directive untuk memasukan text dari suatu file lain. Berikut bentuk elementnya
<%@ include file=/xxxx/cr.txt %>

Beberapa Contoh
A. Contoh pertama akan di coba membuat sebuah form dengan beberapa objek form, dan dikirim ke myform.jsp dengan metode post. formku.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><title>Contoh Form</title></head> <body>
JSP Budi Susanto 5

<form action="/myApp/myform.jsp" method="post"> Username : <input name="username" type="text" value=""><br> Password : <input name="passwd" type="password" value=""><br> Sex : <input name="sex" type="radio" value="L"><input name="sex" type="radio" value="P"><br> Umur saat ini : <select name="umur"> <option values="1216">12-16</option> <option values="1725">17-25</option> <option values="2635">26-35</option> <option values="36A"> > 35</option> </select><br> Info lain : <textarea name="infolain" rows=3 cols=20></textarea><br> Minat : <BR> <input type="checkbox" name="baca" value="baca">Membaca<BR> <input type="checkbox" name="mancing" value="mancing">Memancing<BR> <input type="checkbox" name="makan" value="makan">Suka Makan<BR> <input type="submit"><input type="reset"> </form> </body></html>

myform.jsp
<%@page contentType="text/html"%> <%@page import="java.io.*, java.util.*"%> <% String xbaca = request.getParameter("baca"); String xmancing = request.getParameter("mancing"); String xmakan = request.getParameter("makan"); %> <html> <head><title>Hasil Pembacaan myForm</title></head> <body> <H3>Hasil pembacaan form :</H3> <UL> <LI>Username : <B><%= request.getParameter("username") %></B></LI> <LI>Password : <B><%= request.getParameter("passwd") %></B></LI> <LI>Jns Kel. : <B><%= request.getParameter("sex") %></B></LI> <LI>Umur : <B><%= request.getParameter("umur") %></B> th</LI> <LI>Info Lainnya : <B><%= request.getParameter("infolain") % ></B></LI> <LI>Minat : </LI> <% if (xbaca != null) { %> <UL><LI><B><%= xbaca %></B></LI></UL> <%} if (xmancing != null) { %> <UL><LI><B><%= xmancing %></B></LI></UL> <%} if (xmakan != null) { %> <UL><LI><B><%= xmakan %></B></LI></UL> <%} %> </UL> </body> </html>

JSP Budi Susanto

B. Contoh berikut ini adalah contoh JSP melakukan operasi database ke mySQL, yang secara prinsip tidak berbeda dengan pemakaian JDBC dengan Servlet. pDB.jsp
<%@page contentType="text/html"%> <%@page import="java.io.*, java.sql.*, java.net.*, java.util.*"%> <html> <head><title>Get/Put Data ke DB</title></head> <body> <% String nm = request.getParameter("Nama"); String alm = request.getParameter("Alamat"); try { Class.forName("org.gjt.mm.mysql.Driver"); String conStr = "jdbc:mysql://localhost/test?user=root&password=password"; java.sql.Connection conn; conn = java.sql.DriverManager.getConnection(conStr); java.sql.Statement statement = conn.createStatement(); int rows = statement.executeUpdate( "insert into test values ('"+nm+"', '"+alm+"')"); String query = "SELECT * FROM test"; ResultSet resultSet = statement.executeQuery(query); while(resultSet.next()) { out.println(resultSet.getString(1) + " " + resultSet.getString(2) + "<BR>"); } } catch (ClassNotFoundException cnfe) { System.out.println("Error loading driver: "+ cnfe); } catch (java.sql.SQLException e) { System.out.println("Error loading driver: "+ e); }

%>

</body> </html>

C. Contoh berikut ini akan dicoba untuk melakukan pemanfaatan directive page untuk penanganan kesalahan.

JSP Budi Susanto

Tryerr.jsp
<%@page contentType="text/html"%> <%@ page errorPage="/kmjam.jsp" %> <html> <head><title>Kecepatan</title></head> <BODY> <TABLE BORDER=5 ALIGN="CENTER"><TR><TH CLASS="TITLE">Kecepatan</TABLE> <%! private double toDouble(String value) { return(Double.parseDouble(value)); } %> <% double km = toDouble(request.getParameter("km")); double wkt = toDouble(request.getParameter("wkt")); double speed = km/wkt; %> <UL> <LI>Jarak: <%= km %> km. <LI>Waktu: <%= wkt %> Jam. <LI>Kecepatan: <%= speed %> km/jam. </UL> </BODY></HTML>

kmjam.jsp
<%@page contentType="text/html"%> <%@ page isErrorPage="true" %> <%@ page import="java.io.*" %> <html> <head><title>JSP Page</title></head> <BODY> <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE">Kesalahan Perhitungan Kecepatan</TABLE> <P> tryerr.jsp melaporkan adanya kesalahan berikut : <I><%= exception %></I>. Hal ini terjadi pada bagian berikut : <PRE> <% exception.printStackTrace(new PrintWriter(out)); %> </PRE> </BODY></HTML>

Silahkan Anda melakukan percobaan, dengan melakukan request ke URL misalnya : http://localhost:8080/myApp/tryerr.jsp?km=10&wkt=5 lalu Anda coba kembali dengan URL berikut : http://localhost:8080/myApp/tryerr.jsp?km=10&wkt=
JSP Budi Susanto 8

Berikut contoh penanganan kesalahan selain di atas : tryerr2.jsp


<%@page contentType="text/html"%> <%@page errorPage="errpg.jsp"%> <html> <head><title>JSP Page</title></head> <body> <% String s = request.getParameter("menu"); if (s == null) { throw new javax.servlet.jsp.JspException("Pilihan menu tidak valid!"); } else { out.println("<B>Anda memilih menu " + s + "</B>"); } %> </body> </html>

errpg.jsp
<%@page contentType="text/html"%> <%@page isErrorPage="true"%> <html> <head><title>JSP Page</title></head> <body> <H2>Ada Kesalahan!</H2> Sebuah exception <B><%= exception.toString() %></B>muncul!<BR> Exception tersebut melaporkan pesan : <BR> <%= exception.getMessage() %> </body> </html>

Cobalah Anda memanggil tryerr2.jsp berikut http://localhost:8080/myApp/tryerr2.jsp?menu=nasi+goreng kemudian, cobalah memanggil tryerr2.jsp berikut : http://localhost:8080/myApp/tryerr2.jsp Anda akan mendapatkan halaman errpg.jsp berikut

JSP Budi Susanto

Tag-tag kompatibel dengan XML


Tag-tag asli JSP dapat dituliskan dengan bentuk elemen XML, yang menggunakan namespace jsp: untuk tiap elemennya. Berikut adalah persamaan tag JSP dengan XML :

Tag <%= <%! <% %> %> %>

JSP XML Tag <jsp:expression> <jsp:declaration> <jsp:scriptlet>

Contoh <jsp:expression></jsp:expression> <jsp:declaration>String ver=v1.0 </jsp:declaration> <jsp:scriptlet> for(int i=0;i<10;i++) </jsp:scriptlet>

<%@

%>

<jsp:directive <jsp:include/> <jsp:forward/> <jsp:param/> <jsp:getProperty/> <jsp:setProperty/> <jsp:useBean/> <jsp:plugin/>

<jsp:directive.page language=java/> <jsp:include page=copy.html/> <jsp:forward page=url.html /> <jsp:param name=nm value=xxx/> <jsp:getProperty name=nmBean property=nmProp/> <jsp:setProperty name=nmBean property=nmProp value=xxxx/> <jsp:useBean id=nmBean scope=request class=classBean/> <jsp:plugin type=applet code=nmApplet width=w height=h/>

Terdapat perbedaan jika Anda menggunakan <%@ include file=url %> dengan <jsp:include page=url />, antara lain :

JSP Budi Susanto

10

untuk tag <%@ include file=url %> :

file dibaca dan disisipkan pada halaman JSP sebelum halaman diterjemahkan file dapat berisi JSP hasil dari url di sisipkan ke dalam halaman JSP pada saat request file yang diinclude tidak dapat berisi JSP

untuk tag <jsp:include page=url /> :


Contoh : tryinc.jsp
<%@page contentType="text/html"%> <html> <head><title>Berita baru</title></head> <BODY> <TABLE BORDER=5 ALIGN="CENTER"><TR><TH CLASS="TITLE"> <jsp:include page="/title.jsp"> <jsp:param name="Judul" value="Berita Terbaru!!" /> </jsp:include> </TABLE> <P> Inilah berita terbaru di sekitar kita: <OL> <LI><jsp:include page="/news1.html" /> <LI><jsp:include page="/news2.html" /> </OL> </BODY></HTML>

file title.jsp berisi :


<H3>PT Wora-Wari Yogyakarta</H3><BR> <font size=-1><%= new java.util.Date() %></font> <HR width="75%"> <H4><%= request.getParameter("Judul")%></H4>

file news1.html berisi :


<B>Oracle masuk UKDW.</B> Dengan program OWDP, Oracle telah masuk ke beberapa kampus dalam rangka mengenalkan teknologi Oracle dengan biaya murah. UKDW sebagai salah satu universitas dengan Jurusan TI terbaik di Yogya, telah turut dalam program ini. Kunjungi <A HREF="http://www.ukdw.ac.id/owdp">OWDP Ukdw</A>

file news2.html berisi :


JSP Budi Susanto 11

<B>Cisco NAP akan masuk TI UKDW.</B> Sebagai langkah nyata untuk mewujudkan the new bread of professional, FTI UKDW akan bergabung ke dalam program CNAP (Cisco Network Academic Program). Kunjungi <A HREF="http://www.ukdw.ac.id/cnap">CNAP Ukdw</A>

JSP Budi Susanto

12

Anda mungkin juga menyukai