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.
<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>
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
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
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>
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>
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+"')");
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>
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>
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>
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>