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.

Web Browser Perangkat dengan


Client
HTML, Applet, Image, dll. Kemampuan Internet

HTML, XML, Objek,


Multimedia, dsb

Server pengendali Web Server/Web Container


presentasi Files JavaServer pages 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 Contoh


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

JSP – Budi Susanto 2


Tag Fungsi Contoh
<%! %> Deklarasi <%! Date d = new Date();%>
<% %> Fragmen Kode Program <%
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 Keterangan
Application - Dimiliki oleh container JSP
- dapat dimanipulasi oleh sembarang Servlet atau aplikasi
Page - Ada pada halaman yang mendefinisikan
- Instance individu untuk tiap halaman
Request - ada selama waktu Request
Session - ada untuk selama session client

Berikut adalah objek implisit yang disediakan :

Nama Tipe Fungsi


Application
application javax.servlet.ServletContext Berisi atribut seluruh aplikasi
Page Scope
config javax.servlet.ServletConfig Sebagai Objek representasi
dari konfigurasi JSP yang
tersimpan pada Web
Descriptor (web.xml)
exception java.lang.Throwable Sebagai directive untuk
halaman error
out javax.servlet.jsp.JspWriter Output stream untuk
response

JSP – Budi Susanto 3


Nama Tipe Fungsi

response javax.servlet.ServletRequest Membuat output response


pages java.lang.Object Sebagai this untuk
menunjuk ke halamannya
sendiri
pageContext javax.servlet.jsp.PageContext Berisi atribut halaman
Request
request javax.servlet.ServletRequest Wakil dari Request user
Session
session 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 4


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

Beberapa atribut directive page :

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


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 7


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 9


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 Contoh


<%= %> <jsp:expression> <jsp:expression></jsp:expression>
<%! %> <jsp:declaration> <jsp:declaration>String ver=”v1.0”
</jsp:declaration>
<% %> <jsp:scriptlet> <jsp:scriptlet>
for(int i=0;i<10;i++)
</jsp:scriptlet>
<%@ %> <jsp:directive <jsp:directive.page language=”java”/>
<jsp:include/> <jsp:include page=”copy.html”/>
<jsp:forward/> <jsp:forward page=”url.html” />
<jsp:param/> <jsp:param name=”nm” value=”xxx”/>
<jsp:getProperty/> <jsp:getProperty name=”nmBean”
property=”nmProp”/>
<jsp:setProperty/> <jsp:setProperty name=”nmBean”
property=”nmProp” value=”xxxx”/>
<jsp:useBean/> <jsp:useBean id=”nmBean”
scope=”request” class=”classBean”/>
<jsp:plugin/> <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
untuk tag <jsp:include page=”url” /> :
● hasil dari url di sisipkan ke dalam halaman JSP pada saat request
● file yang diinclude tidak dapat berisi JSP

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