0% menganggap dokumen ini bermanfaat (0 suara)
232 tayangan48 halaman

JSP Servlet

Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
232 tayangan48 halaman

JSP Servlet

Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 48

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.

Com

DASAR-DASAR PEMROGRAMAN JAVA SERVER PAGE (JSP)


Aris Puji Widodo
[email protected] / [email protected] Lisensi Dokumen: Copyright 2003 - 2006 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. 1. Servlet Servlet merupakan class yang didefinisikan dalam java dan digunakan untuk meningkatkan kemampuan web server dalam menangani request dan response client. Servlet dapat menerima request dan menghasilkan response melalui protokol komunikasi yang berbeda, tetapi sebagian besar tipe yang digunakan adalah HTTP Servlet, yang diimplementasikan dengan class java

javax.servlet.httpServlet. Java memiliki dua paket yang menyediakan interface dan class untuk servlet, yaitu javax.servlet dan javax.servlet.http. Beberapa method yang terdapat pada interface servlet, antara lain adalah : Method Keterangan void init (ServletConfig config) Method ini dipanggil hanya sekali selama siklus servlet dan pemanggilan secara otomatis. Method ini digunakan untuk inisialisasi servlet. ServletConfig getServletConfig() Method ini mengembalikan reference ke objek yang mengimplementasikan interface ServletConfig. Objek ini memungkinkan servlet mengakses konfigurasi informasi servlet seperti inisialisasi parameter dan ServletContex, yang memungkinkan servlet memiliki akses ke lingkungannya, seperti pengaksesan ke server dimana servlet dijalankan.
void service (ServletRequest request, ServletResponse response)

Method ini merupakan method pertama yang dipanggil pada setiap servlet
1

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Keterangan untuk merespons request client. String getServletInfo() Method ini didefinisikan programmer servlet untuk mengembalikan String yang berisi informasi servlet seperti author dan versi servlet. Void destroy() Method ini sering disebut clenUp. Method ini untuk mendealokasi resource yang digunakan servlet. Paket servlet mendefinisikan dua buah class abstract yang mengimplementasikan interface Servlet, yaitu class GenericServlet pada paket javax.servlet dan class HttpServlet pada paket javax.servlet.http. Contoh-contoh yang diberikan pada bagian ini diturunkan dari class HttpServlet, yang mendefinisikan kemampuan pemrosesan servlet untuk mewarisi fungsionalitas web server. Method utama yang terdapat pada setiap servlet adalah methot service, yang memiliki parameter berupa objek ServletRequest dan ServletResponse. Kedua objek ini menyediakan akses untuk input stream maupun output stream dan mengijinkan servlet untuk membaca data dari client dan mengirimkan data kembali ke client. Jika terdapat masalah selama eksekusi servlet, maka class ServletException atau

Method

IOException di passing untuk memberitahukan masalah yang terjadi. Class HttpServlet akan melakukan override method service untuk membedakan antara request yang diterima web browser client. Dua tipe request yang paling umum digunakan adalah GET dan POST, yang sering disebut sebagai request method. Request GET digunakan untuk mendapatkan atau menerima informasi dari server yang berupa file HTML atau image. Sedangkan request POST digunakan untuk mengirimkan data ke server dalam bentuk HTML yang berisi data yang dimasukan oleh client. Method yang sering digunakan untuk memberikan respon terhadap request client adalah doGet dan doPost yang memiliki dua parameter, sebagai berikut : Method Keterangan String getParameter(String name) Dikirim ke servlet sebagai bagian request GET atau POST. yaitu HttpServletRequest dan

HttpServletResponse. Beberapa method yang berasal dari ServletRequest adalah

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Method Keterangan Enumeration getParameterNames() Mengembalikan nama seluruh parameter yang dikirim ke servlet sebagai bagian dari request POST. String[] getParameterValues(String name) Mengembalikan array of string yang berisi nilai untuk parameter servlet Cookie[] getCookies() Mengembalikan array of cookie, merupakan objek client yang disimpan di server. Cookies dapat digunakan untuk mengidentifikasikan secara unik setiap client oleh server. HttpSession getSession(Boolean create) Mengembalikan objek HttpSession yang sedang berlasung pada client. Parameter akan bernilai jika tidak terdapat objek Httpsession di client. Secara fungsionalitas memilki kegunaan yang sama dengan Cookies. Beberapa method yang berasal dari ServletResponse adalah sebagai berikut : Method Keterangan void addCookie(Cookie cookie) Digunakan untuk menambahkan cookie pada header sebagai respons ke client. ServletOutputStream getOutputStream() Mendapatkan output stream berbasis byte yang memungkinkan data teks dikirim ke client. PrintWriter getWriter() Mendapatkan output stream berbasis karakter yang memungkinkan data binary dikirim ke client. Void setContentType(String type) Menspesifikasikan type MIME respons ke browser. 1.1. Penanganan request HTTP GET Tujuan utama adalah untuk menerima content dari suatu URL. Content biasanya dalam bentuk HTML. Dibawah ini diberikan contoh program servlet sederhana untuk menangani request HTTP Get untuk menerima content dari suatu URL. Listing Program 1.1.
// Nama file : HTTPGetServlet.java // Diskripsi : Membuat dan mengirimkan halaman web ke client import javax.servlet.*; import javax.servlet.http.*; import java.io.*;

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

public class HTTPGetServlet extends HttpServlet { public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { PrintWriter output; response.setContentType( "text/html" ); //tipe content output = response.getWriter(); // get writer // membuat dan melakukan send halaman HTML ke client StringBuffer buf = new StringBuffer(); buf.append( "<HTML><HEAD><TITLE>\n" ); buf.append( "Contoh Servlet Sederhana\n" ); buf.append( "</TITLE></HEAD><BODY>\n" ); buf.append( "<H1>Program Servlet Sederhana!</H1>\n" ); buf.append( "</BODY></HTML>" ); output.println( buf.toString() ); output.close(); // close PrintWriter stream } }

Sedangkan file HTML yang mendemonstrasikan servlet untuk menangani Request HTTP GET adalah sebagai berikut : Listing Program 1.2.
<!-- Nama file : HTTPGetServlet.html --> <!-- Deskripsi : Mendemonstrasikan servlet untuk
menangani Request HTTP GET

-->

<HTML> <HEAD> <TITLE> Contoh Servlet : Request HTTP GET </TITLE> </HEAD> <BODY> <FORM ACTION="http://localhost:8080/SERVER2/servlet/HTTPGetServlet" METHOD="GET"> <P><H2>Tekan tombol Submit agar servlet mengirimkan file HTML </H2></P> <INPUT TYPE="submit" VALUE="Submit"> </FORM> </BODY> </HTML>

Jika HTTPGetServlet.html dijalankan pada browser, maka akan terlihat tampilan pada browser seperti pada gambar 1.1. : Dilakukan dengan memasukan alamat URL pada browser sebagai berikut : http://localhost:8080/server2/HTTPGetServlet.html

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 1.1. Tampilan HTTPGetServlet.html pada Browser Jika button Submit ditekan, maka servlet akan mengembalikan HTML seperti yang terlihat pada browser sebagai berikut :

Gambar 1.2. Servlet yang Menangani Request HTTP Get 1.2. Menangani Request HTTP POST Request HTTP Post sering digunakan untuk mengirimkan data dalam bentuk HTML menjadi server-side form handler yang digunakan untuk memproses data. Dibawah ini diberikan contoh program servlet sederhana untuk menangani request HTTP Post.

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Contoh ini mendeskripsikan survey berbasis web untuk mengetahui minat kebutuhan terhadap suatu jenis bahasa pemrograman. Listing Program 1.3.
// Nama file : HTTPPostServlet.java // Diskripsi : Hasil survey menggunakan servlet request HTTP POST import import import import import javax.servlet.*; javax.servlet.http.*; java.text.*; java.io.*; java.util.*;

public class HTTPPostServlet extends HttpServlet { private String namaBahasa[] = { "Fortran", "Pascal", "C", "Java", "TidakAda" }; public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { int bahasa[] = null, total = 0; File f = new File( "survey.txt" ); if ( f.exists() ) { // menentukan responden hasil survey try { ObjectInputStream input = new ObjectInputStream( new FileInputStream( f ) ); bahasa = (int []) input.readObject(); input.close(); // close stream for ( int i = 0; i < bahasa.length; ++i ) total += bahasa[ i ];

} else bahasa = new int[ 5 ];

} catch( ClassNotFoundException cnfe ) { cnfe.printStackTrace(); }

// membaca responden hasil survey current String value = request.getParameter( "jBahasa" ); ++total; // update total of all responses // menentukan bahasa yang dipilih dan melakukan update total for ( int i = 0; i < namaBahasa.length; ++i ) if ( value.equals( namaBahasa[ i ] ) ) ++bahasa[ i ]; // menulis update total ke disk ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream( f ) ); 6

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

output.writeObject( bahasa ); output.flush(); output.close(); // menghitung persentase double percentages[] = new double[ bahasa.length ]; for ( int i = 0; i < percentages.length; ++i ) percentages[ i ] = 100.0 * bahasa[ i ] / total; // mengirim message terima kasih ke clien response.setContentType( "text/html" );//content type PrintWriter responseOutput = response.getWriter(); StringBuffer buf = new StringBuffer(); buf.append( "<html>\n" ); buf.append( "<title>Terima Kasih!</title>\n" ); buf.append( "Terima Kasih untuk partisipasinya.\n" ); buf.append( "<BR>Hasil Survei :\n<PRE>" ); DecimalFormat twoDigits = new DecimalFormat("#0.00"); for ( int i = 0; i < percentages.length; ++i ) { buf.append( "<BR>" ); buf.append( namaBahasa[ i ] ); buf.append( ": " ); buf.append(twoDigits.format(percentages[ i ]) ); buf.append( "% responden: " ); buf.append( bahasa[ i ] ); buf.append( "\n" ); } buf.append( "\n<BR><BR>Total responden: " ); buf.append( total ); buf.append( "</PRE>\n</html>" ); responseOutput.println( buf.toString() ); responseOutput.close(); } }

Sedangkan file HTML yang mendemonstrasikan servlet untuk menangani Request HTTP POST adalah sebagai berikut : Listing Program 1.4.
<!Nama file : HTTPPostServlet.html --> <!-- Diskripsi : Mendemonstrasikan servlet untuk
menangani Request HTTP GET

-->

<HTML> <HEAD> <TITLE> Contoh Servlet : Request HTTP POST </TITLE> </HEAD> <BODY>

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

<FORM METHOD="POST" ACTION= "http://localhost:8080/SERVER2/servlet/HTTPPostServlet"> Bahasa Pemrograman yang paling banyak dibutuhkan<BR><BR> <INPUT TYPE=radio NAME=jBahasa VALUE=Fortran>Fortran<BR> <INPUT TYPE=radio NAME=jBahasa VALUE=Pascal>Pascal<BR> <INPUT TYPE=radio NAME=jBahasa VALUE=C>C<BR> <INPUT TYPE=radio NAME=jBahasa VALUE=Java>Java<BR> <INPUT TYPE=radio NAME=jBahasa VALUE=TidakAda CHECKED>TidakAda <BR><BR><INPUT TYPE=submit VALUE="Submit"> <INPUT TYPE=reset> </FORM> </BODY> </HTML>

Jika HTTPPostServlet.html dijalankan pada browser, maka akan terlihat tampilan pada browser seperti pada gambar 1.3.: Dilakukan dengan memasukan alamat URL pada browser sebagai berikut : http://localhost:8080/server2/HTTPPostServlet.html

Gambar 1.3. Tampilan HTTPPostServlet.html pada Browser Jika tombol submit ditekan, maka servlet akan mengembalikan dokumen HTML sebagai berikut :

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 1.4. Servlet yang Menangani Request HTTP Post

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

2. Pemrograman dengan Java Server Pages (JSP) Pada bagian ini akan diberikan tentang servlet dan JSP yang digunakan untuk mengembangkan suatu aplikasi server side berbasis java. 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 2.1. sebagai berikut :

Bean

Bean

Gambar 2.1. 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.

Uses

Us

<HTML> <BODY>

10

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

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 2.1.
<!-- Nama file : helloWorld.jsp --> <!-- Diskripsi : Membuat Hello Word menggunakan JSP --> <html> <head> <title> Hello World Menggunakan JSP </title> </head> <body> <%= "Hello World JSP Sederhana"%> </body> </html>

Seperti yang dijelaskan diatas, bahwa halaman JSP akan dilakukan kompile menjadi servlet yang diberikan pada Listing program 2.2. sebagai berikut : Listing Program 2.2.
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)

11

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

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-88591"); 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-tomcat3.3.1\\webapps\\ROOT\\latihJsp\\helloWorld1.jsp";from=(0,0);to=(9,1)] out.write("<!-- Nama file : helloWorld.jsp -->\r\n<!-Diskripsi : Membuat Hello Word menggunakan JSP -->\r\n<html>\r\n<head>\r\n\t<title>\r\n\t\tHello World Menggunakan JSP\r\n\t</title>\r\n</head>\r\n<body>\r\n\t"); // end // begin [file="D:\\jakarta-tomcat3.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-tomcat3.3.1\\webapps\\ROOT\\latihJsp\\helloWorld1.jsp";from=(9,34);to=(11,7)] out.write("\r\n</body>\r\n</html>"); // 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) { 12

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

fer(); }

((org.apache.jasper.runtime.JspWriterImpl)out).flushBuf != null)

if (_jspxFactory _jspxFactory.releasePageContext(pageContext); } } }

Jika dijalankan pada browser dengan alamat URL : http://localhost:8080/LatihJSP/helloWorld.jsp Maka akan menampilkan tampilan sebagai berikut :

Gambar 2.2. Tampilan helloWorld.jsp pada Browser 2.1. 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.

13

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

2.1.1. Directives Sintaks :


<%@ namaDirective attribute1=value1 attribute2 =value2 %>

Directives terdiri dari tiga bagian, yaitu : 1. Page Directive 2. Include Directive 3. Taglib Directive 2.1.1.1. 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 Language Extends Import Session Buffer autoFlush isThreadSafe Keterangan bahasa pemrograman Default Nilai Java yang Tidak ada Tidak ada true

Info errorPage isErrorPage contentType

Menentukan digunakan Digunakan untuk men-generate superclass Mengimport package atau class java, seperti halnya pada program Java Menentukan apakah halaman JSP menggunakan HTTP session Menentukan model buffering untuk output stream ke client Melakukan reset isi buffer jika sudah penuh Mendefinisikan tingkat keamanan mengenai masalah threading halaman JSP. Jika false request akan diproses sebagai single Thread, berurutan sesuai urutan kedatangan request Mendefinisikan string informasi yang dapat diperoleh dari implementasi metode Servlet.getServletInfo() Menentukan error page, sehingga jika terjadi error, maka halaman JSP ini akan ditampilkan Memberikan indikasi apakah halaman JSP merupakan halaman error dari halaman JSP yang lain Menentukan encoding karakter pada JSP dan tipe MIME untuk respons yang dihasilkan JSP.

true true

Tidak ada Tidak ada false MIME-TYPE text / html


14

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Attribute

Keterangan

Default Nilai CHARSET ISO-8859-1

Contoh : <%@ page language=Java import="java.sql.* session=true buffer=12kb autoFlush=true errorPage=myError.JSP %> 2.1.1.2. Include Directive Untuk menyisipkan isi file lain ke dalam file JSP Sintaks : <% include file=namaFile %> Contoh : <% include file=myHeader.html %> 2.1.1.3. Taglib Directive Untuk penggunaan tag library atau tag tambahan. Contoh : <%@ taglib url=http://Latihan.com/tagKu prefix=test /> <test:proses> </test:proses> 2.1.2. Scripting Elements Terdiri dari tiga elemen, yaitu : 1. Declarations 2. Scriptlets 3. Expression 2.1.2.1. 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 %>

15

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Contoh : <%! int i = 10 ; double x = 5.0 ; %> 2.1.2.2. 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); %> 2.1.2.3. 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); %> <br> <fieldset style="padding: 2"> <legend> <b>Hasil Analisa dan Review</b> </legend> <%=oAnalisa%> -------------> Expression </fieldset> 2.1.3. 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 :

16

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

1. <jsp:useBean> 2. <jsp:setProperty> 3. <jsp:getProperty> 4. <jsp:param> 5. <jsp:include> 6. <jsp:forward> 7. <jsp:plugin> 2.1.3.1. <jsp:useBean> 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 : <jsp:useBean id=name scope=scopeName beanDetail /> Untuk beanDetail berupa salah satu dibawah ini : class = class = className className type = typeName

beanName = beanName type = typeName type = typeName Atribut pada action tag dapat dilihat pada tabel sebagai berikut : Atribut id scope class beanName Deskripsi Nama untuk mengindentifikasi bean yang akan diinstantiate Jangkauan reference terhadap bean. Nilai yang tersedia untuk scope antara lain : page, request, session, application Nama class bean yang akan digunakan Atribut khusus yang terkait dengan method instantiate() pada class java.beans.Beans Default Nilai Tidak ada page Tidak ada Tidak ada

17

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Atribut Type Contoh :

Deskripsi Menentukan tipe class

Default Nilai Nilai dari atribut class

<jsp:useBean id="oPenilaian" scope="session" class="Cbhrm.Penilaian"/>

2.1.3.2. <jsp:setProperty> Action tag standar ini digunakan bersama dengan action tag <jsp:useBean>. Action tag ini berfungsi untuk men-set nilai properties yang terdapat pada bean. Sintaks : <jsp:setProperty name = beanName propertyDetail /> Untuk propertyDetail adalah sebagai berikut : property = * property = propertyName property = propertyName param = parameterName property = propertyName value = propertyValue Contoh :

<jsp:setProperty name="oPenilaian" property="tglMul" param="tglMul"/>

2.1.3.3. <jsp:getProperty> Action tag ini merupakan kebalikan dari action tag <jsp:setProperty>, dimana berfungsi untuk mengambil nilai property pada Java Bean. Sintaks :
<jsp:getProperty name = beanName property = propertyName />

Contoh : <jsp:setProperty name="oPenilaian" property="tglMul" /> 2.1.3.4. <jsp:param> Action tag ini berfungsi untuk menset nilai-nilai parameter yang akan digunakan dalam halaman JSP. Sintaks :
<jsp:param name = parameterName value = parametervalue />

18

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Contoh : <jsp:param name = warna value = merah /> 2.1.3.5. <jsp:include> Action tag ini memiliki fungsi yang serupa dengan directive <%@ include file = fileName %>. Tetapi memiliki perbedaan mendasar, yaitu waktu eksekusi. Untuk tag <jsp:incluce> 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 : <jsp:include page = fileName flush = true/false /> Contoh : <jsp:include page = myDynamic.jsp flush = true /> 2.1.3.6. <jsp:forward> Action tag ini berfungsi untuk melakukan forward ke suatu halaman lain, baik halaman HTML atau JSP. Sintaks : <jsp:forward page = alamatURL /> Contoh : <jsp:forward page = alamatURL.jsp /> 2.1.3.6. <jsp:plugin>

19

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Action tag ini untuk menghasilkan kode-kode yang sesuai target browser dalam menyisipkan komponen Java bean atau applet secara otomatis. 2.2. Menangani Form HTML Salah satu bagian yang biasa digunakan pada suatu aplikasi web adalah menggunakan Form HTML yang digunakan untuk memasukan beberapa informasi oleh pengguna. Informasi yang dimasukan pengguna akan disimpan pada request objek, dimana dikirim oleh client ke JSP engine. Kemudian JSP engine akan mengirimkan request objek tersebut ke server-side component (JavaBean component, servlet, atau enterprise bean ) untuk file JSP tertentu yang di request oleh client. Selanjutnya component menangani request tersebut dan memberikan kembali response objek ke JSP engine. JSP engine memberikan response objek terhadap halaman JSP yang di-request oleh client dalam format HTML baru. Adapun untuk ilustrasinya diberikan pada gambar 2.3. sebagai berikut :

Response

Client
Gambar 2.3. Representasi Aliran Data Antara Client dan Server Contoh : Pada contoh ini akan diuraikan mengenai proses penanganan terhadap suatu Form HTML dan sekaligus untuk mencoba beberapa komponen JSP yang telah diberikan pada bagian sebelumnya. Pengguna memasukan nama tertentu ke dalam input box dan jika di tekan tombol Submit maka akan membuka browser response yang akan menampilkan kembali
20

JSP en Web

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

nama yang telah dimasukan oleh pengguna tersebut. Pada kasus ini JSP yang dibangun akan menggunakan komponen java bean. Untuk menyelesaikan permasalahan diatas maka diberikan visualisasi struktur file yang akan di butuhkan untuk aplikasi diatas. Adapun struktur file tersebut adalah sebagai berikut :

NameHandler.java
Gambar 2.4. Struktur File hellouser Kemudian implementasi dari masing-masing file di atas adalah sebagai berikut : Listing Program 2.3. : ( NameHandler.java )
// Nama file : NameHandler.java // Deskripsi : class java bean untuk hellouser package hello; //nama package

public class NameHandler { private String username; public NameHandler(){} // kostruktor // assesor method public void setUsername(String nama) { username= nama; } public String getUsername() { return username; } }

21

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Listing Program 2.4. : ( hellouser.jsp )


<%@ page import ="hello.NameHandler"%> <jsp:useBean id="myBean" scope="page" class="hello.NameHandler"/> <jsp:setProperty name="myBean" property="*"/> <html> <head> <title>nama file : hellouser.jsp</title> </head> <body> <p><font size="3"><b>Menampilkan nilai variabel yang dimasukan melalui Form</b></font></p> <form method="get">Masukan Nama Anda <p><input type="text" name="username" size="20"></p> <p><input type="submit" value="Submit"> <input type="reset" value="Reset"></p> </form> <p>&nbsp;</p> <% if (request.getParameter("username") != null) { %> <jsp:include page="response.jsp" flush="true"/> <% } %> </body> </html>

Listing Program 2.5. : ( response.jsp )


<%@ page import ="hello.NameHandler"%> <jsp:useBean id="myBean" class="hello.NameHandler"/> <jsp:setProperty name="myBean" property="*"/> scope="page"

<html> <head> <title>nama file : response.jsp</title> </head> <body> <p align="center"><font color="#0000FF"><b>Hasil Halaman response.jsp --> Nama Anda : </b></font> <b><jsp:getProperty name="myBean" property="username" /> !</b> </p> </body> </html>

22

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Kemudian untuk dapat ditampilkan pada browser, maka struktur folder untuk file-file diatas adalah sebagai berikut :

webapps hello
Gambar 2.5. Struktur Folder Kemudian pada browser masukan alamat URL sebagai berikut : http://localhost:8080/hello/helloUser.jsp Sehingga pada browser akan menampilkan seperti pada gambar 2.6. sebagai berikut :

hel

res

23

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 2.6. Tampilan hellouser.jsp Masukanlah salah satu nama dan kemudian tekan tombol Submit, maka pada browser akan tampil seperti pada gambar 2.7.

Gambar 2.7. Tampilan response.jsp Contoh :

24

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Pada contoh ini akan diuraikan mengenai penanganan Form HTML tanpa menggunakan komponen Java bean. Listing Program 2.6 : ( Form.jsp )
<html> <head> <title>nama file : Form.jsp</title> </head> <body> <p><font size="3"><b>Menampilkan nilai variabel yang dimasukan melalui Form</b></font></p> <form method="post" action="Form1.jsp"> <table width="646"> <tr> <td width="87">Nama</td> <td colspan="3"> <input type="text" name="nama"></td> </tr> <tr> <td>Alamat</td> <td colspan="3"><input type="text" name="alamat"></td> </tr> <tr> <td>Phone</td> <td colspan="3"><input type="text" name="phone"></td> </tr> <tr> <td>Pekerjaan</td> <td colspan="3"><select name="pekerjaan"> <option selected value="Mahasiswa">Mahasiswa</option> <option value="PNS">PNS</option> <option value="Wiraswasta">Wiraswasta</option> <option value="Pengangguran">Pengangguran</option> </select></td> </tr> <tr> <td>Hobby</td> <td width="171"><input type="radio" name="hobby" value="Renang"> Renang</td> <td width="183"><input type="radio" name="hobby" value="Sepak Bola"> Sepak Bola</td> <td width="185"><input type="radio" name="hobby" value="Membaca"> Membaca</td> </tr> </table> <p><input type="submit" value="Submit"> <input type="reset" value="Reset"></p> </form> </body> </html>

Listing Program 2.7. : ( Form1.jsp )


25

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

<html> <head> <title>nama file : Form.jsp</title> </head> <body> <p><font size="3"><b>Menampilkan Data Yang Anda Masukan Form</b></font></p> <% String nama = request.getParameter("nama"); String alamat = request.getParameter("alamat"); String phone = request.getParameter("phone"); String pekerjaan = request.getParameter("pekerjaan"); String hobby = request.getParameter("hobby"); %> <form method="post" action="Form.jsp"> <% if(nama != null&& nama.length()>0){ %> <table width="386"> <tr> <td width="108">Nama</td> <td width="14">:</td> <td width="248"><%=nama%>&nbsp;</td> </tr> <tr> <td>Alamat</td> <td>:</td> <td><%=alamat%>&nbsp;</td> </tr> <tr> <td>Phone</td> <td>:</td> <td><%=phone%>&nbsp;</td> </tr> <tr> <td>Pekerjaan</td> <td>:</td> <td><%=pekerjaan%>&nbsp;</td> </tr> <tr> <td>Hobby</td> <td>:</td> <td><%=hobby%>&nbsp;</td> </tr> </table> <% } else { %> <b>Nama Belum Anda Masukan</b> <% } %> <p>&nbsp;</p> <p><input type="submit" value="Back"> </p>

Melalui

26

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

</form> </body> </html>

Jika Form.jsp dijalankan pada browser, maka browser akan menampilkan seperti pada gambar 2.8. pada halaman berikut ini :

Gambar 2.8. Tampilan Form.jsp Jika variable nama tidak null, maka jika tombol submit maka pada browser akan menampilkan seperti pada gambar 2.9. sebagai berikut :

Gambar 2.9. Tampilan Form1.jsp

27

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

2.3. JSP dan Database JSP sebagai teknologi untuk pembuatan aplikasi web memiliki kemampuan menangani database dengan menggunakan class dan interface Java Database Connectivity ( JDBC ) sebagai driver antara program JSP dan database server. Untuk masing-masing database memiliki JDBC driver sendiri-sendiri. 2.3.1. JDBC JDBC adalah Application Programming Interface (API) yang dikembangkan oleh Sun Microsystem untuk menyediakan akses data universal dalam bahasa pemrograman Java. Inti JDBC adalah package java.sql dan javax.sql. JDBC menyediakan mekanisme untuk koneksi database, query database, dan traksaksi database. JDBC tidak melakukan standarisasi SQL, tetapi dapat mendukung sintaks SQL untuk masing-masing vendor database. Untuk detail mengenai JDBC anda dapat mengunjungi situs : http://java.sun.com./product/jdbc. Dan tutorial JDBC pada http://java.sun.com/docs/books/tutorial/jdbc.

Gambar 2.10. Diagram JDBC JDBC bukan database server, tetapi merupakan penyedia mekanisme untuk berkomunikasi antara aplikasi Java dan database server. JDBC memiliki tujuh tahap standart untuk menangani database, yaitu : 1. Melakukan Load Driver JDBC Untuk database mySQL
Try{ }

Program Java / JSP

// Load driver Class.forName("org.gjt.mm.mysql.Driver");

28

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

catch(SQLException sqlexception){ System.out.println(sqlexception); } catch(Exception exception) { System.out.println(exception); }

Untuk database SQL Server


Try{ // Load driver Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver" ); } catch(SQLException sqlexception){ System.out.println(sqlexception); } catch(Exception exception) { System.out.println(exception); }

2. Mendefinisikan URL Untuk database mySQL private String url = " jdbc:mysql:3306//namaDatabase; Untuk database SQL Server private String url "jdbc:microsoft:sqlserver://localhost:1433"; 3. Koneksi database Untuk database mySQL
private String username = ""; private String password = ""; private Connection con; con = DriverManager.getConnection( user=arispw&password=arispw" );

url?

Untuk database SQL Server


private String username = ""; private String password = ""; private Connection con; con = DriverManager.getConnection( "informatika" );

url,

"sa",

29

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

4. Membuat objek statement Untuk database mySQL dan SQL Server


private Statement stmt; private Connection con; stmt = con.createStatement();

5. Melakukan Query Untuk database mySQL


private ResultSet rs; String SQL = select * from namaTabel rs = stmt.executeQuery(SQL);

Untuk database SQL Server


private ResultSet rs; String SQL = select * from namaDatabase..namaTabel rs = stmt.executeQuery(SQL);

6. Memproses Hasil Untuk database mySQL dan SQL Server


if(rs.next()){ idKaryw = } rs.getString("idKaryw");

7. Menutup Koneksi Untuk database mySQL dan SQL Server


stmt.close(); con.close();

Contoh : Pada contoh ini akan diberikan tentang pembuatan aplikasi JSP menggunakan database. Untuk database yang digunakan adalah mySQL. Aplikasi yang dibangun meliputi menampilkan record, menambah record, memodifikasi record dan menghapus record. Pada aplikasi ini akan didemonstrasikan cara menyimpan data dari suatu form HTML ke database dan sebaliknya mengambil data dari database untuk ditampilkan pada form HTML.

30

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Untuk mendukung aplikasi tersebut maka dibutuhkan database. Dimana anda dapat membuat database dan tabel yang ada di dalamnya dengan menggunakan mySQL.

Database yang akan digunakan adalah wroxjsp dimana memiliki spesifikasi tabel sebagai berikut : Tabel employee

Tabel dept

Tabel city

Pertama anda buat menu control dengan listing program sebagai berikut : Listing Program 2.8. : (control.html)
<html> <head></head> <body> <P> <H1><i><font color="#FF0000" size="7" face="Courier New, Courier, mono">MENU CONTROL</font></i></H1> <p><img border="0" src="image/mn-layanan.gif" width="42" height="17">

31

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

<i> <font face="Century Gothic"> <img border="0" src="image/bgshadow.jpg" width="151" height="5"></font></i> </p> <table width="440" border="1" align="center"> <tr align="center" bordercolor="#0000FF" bgcolor="#FFFFFF"> <td width="226"><font color="white"> <div align="left"><a href="dbaddemp.jsp"><img border="0" src="image/tgo.gif" width="46" height="46">Add An Employee</a></div> </font></td> <td colspan="2" rowspan="4" bordercolor="#CCCCCC" bgcolor="#33FF66"><font color="white"> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"></div> <div align="center"> <p><font color="#0033FF" size="5">Pelatihan PT. INTI</font></p> </div> </font></td> </tr> <tr bordercolor="#0000FF" bgcolor="#FFFFFF"> <td align="center"> <div align="left"><a href="dbdelemp.jsp"><img border="0" src="image/tgo.gif" width="46" height="46">Delete An Employee</a></div></td> </tr> <tr bordercolor="#0000FF" bgcolor="#FFFFFF"> <td align="center"> <div align="left"><a href="dbmodemp.jsp"><img border="0" src="image/tgo.gif" width="46" height="46">Modify Employee Record</a></div></td> </tr> <tr bordercolor="#0000FF" bgcolor="#FFFFFF"> <td align="center"> <div align="left"><a href="dbquery.jsp"><img border="0" src="image/tgo.gif" width="46" height="46">See all employees</a>&nbsp;&nbsp;&nbsp;</div></td> </tr> </table> <td> </p> <img border="0" src="image/detail.gif" width="317" height="32"> <H5 align="center"><font face="Arial"><span style="font-weight: 400"><i><font color="#CC3300">@copyright : 2003<font size="2"> --&gt; </font></font></i></span></font><font color="#CC3300" size="2" face="Arial"><span style="font-weight: 400"><i>DataBase Menggunakan mySQL--&gt;namaDataBase : wroxjsp dengan namaTabel employee, dept, city</i></span></font></H5> </body> </html> 32

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Jika ditampilkan pada browser maka akan memberikan tampilan seperti pada gambar 2.11. halaman berikut :

Gambar 2.11. Tampilan control.html Kemudian untuk menampilkan semua data employee diberikan listing program sbb: Listing Program 2.9. : ( dbquery.jsp )
<html> <head> <title> Testing Koneksi ke Database dengan JDBC mySQL </title> </head> <%@ page language="java" import="java.sql.*, wroxjsp.*" %> <jsp:useBean id="empbean" class="wroxjsp.empQBean" scope="page" /> <body> <h1>Menampilkan Tabel employee</h1> <table border="1" width="400"> <tr> <td><b>ID</b></td><td><b>Last Name</b></td> <td><b>First Name</b></td><td><b>Extension</b></td> </tr> <% empbean.makeConnection(); // connect up if (empbean.getEmployees()) // perform query { while (empbean.getNextEmployee()) { String eid = empbean.getColumn("empid"); String last = empbean.getColumn("lastname");

33

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

String first = empbean.getColumn("firstname"); String ext = empbean.getColumn("extension"); %> <tr> <td><%= <td><%= <td><%= <td><%= </tr> <% } %> </table> <h1>Anda Sukses Koneksi ke Data Base</h1> <a href="control.html">Go back to admin control</a> </body> </html> } /* of while */ /* of if */ eid %></td> last %></td> first %> </td> ext %> </td>

empbean.takeDown();

Untuk dbquey.jsp membutuhkan class java bean pada listing program 2.12. dan 2.13. sbb: Listing Program 2.12. : ( sqlBean.java )
package wroxjsp; import java.sql.*; import java.io.*; public abstract class sqlBean { private String myDriver = "org.gjt.mm.mysql.Driver"; private String myURL = "jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"; protected Connection myConn; public sqlBean() {} public void makeConnection() throws Exception { System.out.println("Connection started"); Class.forName(myDriver); myConn = DriverManager.getConnection(myURL); System.out.println("Connection made: " + myConn); } public abstract void cleanup() throws Exception; public void takeDown() throws Exception { cleanup(); myConn.close(); } }

34

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Listing Program 2.13. : ( empQBean.java )


package wroxjsp; import java.sql.*; import java.io.*; import wroxjsp.*; public class empQBean extends sqlBean { String myEmpSQL = "select * from employee"; ResultSet myResultSet = null; Statement stmt = null; public empQBean() {super();} public boolean getNextEmployee() throws Exception { return myResultSet.next(); } public String getColumn( String inCol) throws Exception { return myResultSet.getString(inCol); } public boolean getEmployees() throws Exception { String myQuery = myEmpSQL; stmt = myConn.createStatement(); System.out.println("Statement made"); myResultSet = stmt.executeQuery(myQuery); System.out.println("Query executed"); return (myResultSet != null); } public void cleanup() throws Exception { stmt.close(); }

Sehinga pada browser akan memberikan tampilan seperti pada gambar 2.12. sbb :

35

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 2.12. Tampilan dbquery.jsp Untuk menambahkan record employee listing programnya adalah sbb : Listing Program 2.14. : (dbaddemp.jsp )
<html> <head> <title> Menambah Record Employee </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <h1>Menambah Record Employee</h1> <form method="post" action="addproc.jsp"> <table border="1" width="400"> <tr> <td><b>ID Employee:</b></td><td><input name="inpempid" type="text" width="30"></td> </tr> <tr> <td><b>Last Name:</b></td><td><input name="inplast" type="text" width="30"></td> </tr> <tr> <td><b>First Name:</b></td><td><input name="inpfirst" type="text" width="30"></td> </tr> <tr> <td><b>Extension:</b></td><td><input name="inpext" type="text" width="4"></td> </tr> <tr> <td><b>City:</b></td><td><select name="inpcity"> <%

36

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); Statement stmt = myConn.createStatement(); ResultSet myResultSet = stmt.executeQuery("select city"); if (myResultSet != null) { while (myResultSet.next()) { String cid = myResultSet.getString("cid"); String cname = myResultSet.getString("name"); <option value='<%= cid %>'><%= cname %> } %> </select> </td> </tr> <tr> <td><b>Department:</b></td><td><select name="inpdept"> <% myResultSet = stmt.executeQuery("select * from dept"); if (myResultSet != null) { while (myResultSet.next()) { String dpid = myResultSet.getString("dpid"); String dpname = myResultSet.getString("name"); <option value='<%= dpid %>'><%= dpname %> } %> </select> </td> </tr> <tr> <td colspan="2"> <center> <input name="pagemode" type="hidden" value="submit"> <input type="submit" value="Add Now"> </center> </td> </tr> <% stmt.close(); myConn.close(); %> </table> 37 } /* of while */ /* of if */ } /* of while */ /* of if */ * =

from

%> <%

%> <%

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

</form> <a href="control.html">Go back to admin control</a> </body> </html>

Listing Program 2.15. : ( addproc.jsp )


<html> <head> <title> Pemrosesan Penambahan Record Employee </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); String String String String String String iempid = request.getParameter("inpempid"); ilast = request.getParameter("inplast"); ifirst = request.getParameter("inpfirst"); iext = request.getParameter("inpext"); icity = request.getParameter("inpcity"); idept = request.getParameter("inpdept"); =

Statement stmt = myConn.createStatement(); int rowsAffected = stmt.executeUpdate("insert into employee (empid,lastname,firstname,extension,cityofresidence,dept) values('"+ iempid +"','" + ilast +"','" + ifirst + "','" + iext + "'," + icity + "," + idept + ")"); if (rowsAffected == 1) { %> <h1>Success Menambah Record Employee</h1> <p> <a href="dbquery.jsp">See all employees</a><br> <a href="control.html">Go back to control center</a> <% %> <% } else { <h1>Sorry, Penambahan Record Gagal.</h1> <a href="control.html">Go back to control center</a> } stmt.close(); myConn.close();

38

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

%> </body> </html>

Jika dijalankan pada browser maka akan memberikan tampilan sebagai berikut :

Gambar 2.13. Tampilan dbaddemp.jsp Setelah semua form diisi dan di tekan tombol Add Now maka akan menampilkan sbb :

Gambar 2.14. Tampilan addproc.jsp Kemudian untuk menghapus record employee diberikan listing program sbb : Listing Program 2.16. : ( dbdelemp.jsp )
html> <head> <title>

39

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Menghapus Record Employee </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <h1>Menghapus Record Employee</h1> <table border="1" width="400"> <tr> <td><b>ID</b></td><td><b>Last Name</b></td> <td><b>First Name</b></td><td><b>Extension</b></td> <td><b>Hapus?</d></td> </tr> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); Statement stmt = myConn.createStatement(); ResultSet myResultSet = stmt.executeQuery("select employee"); if (myResultSet != null) { while (myResultSet.next()) { String eid = myResultSet.getString("empid"); String last = myResultSet.getString("lastname"); String first = myResultSet.getString("firstname"); String ext = myResultSet.getString("extension"); <td><%= eid %></td> <td><%= last %></td> <td><%= first %> </td> <td><%= ext %> </td> <td><a href='delproc.jsp?eid=<%= eid %>'>Hapus</a></td> * =

from

%> <tr>

</tr> <% } /* of while */ } /* of if */ stmt.close(); myConn.close(); %> </table> <p> <a href="control.html">Go back to admin control</a> </body> </html>

Listing Program 2.17. : ( delproc.jsp )


<html> <head> <title>

40

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Delete Employee Processing </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); String eid = request.getParameter("eid"); Statement stmt = myConn.createStatement(); int rowsAffected = stmt.executeUpdate("delete from employee where empid="+ eid); if (rowsAffected == 1) { <h1>Success Menghapus Record Employee.</h1> <p> <a href="dbquery.jsp">See all employees</a><br> <a href="control.html">Go back to control center</a> <% %> <% } else { <h1>Sorry, Gagal Menghapus Record.</h1> <a href="control.html">Go back to control center</a> } stmt.close(); myConn.close(); =

%>

%> </body> </html>

Jika dijalankan pada browser maka akan tampil sbb :

41

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 2.15. Tampilan dbdelemp.jsp Dan jika salah satu record dihapus maka pada browser akan tampil sbb :

Gambar 2.16. Tampilan delproc.jsp Untuk melakukan modifikasi record employee diberikan listing program sbb : Listing Program 2.18. : ( dbmodemp.jsp )
<html> <head> <title> Merubah Record Employee </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <h1>Merubah Record Employee</h1> <table border="1" width="400"> <tr> <td><b>ID</b></td><td><b>Last Name</b></td> 42

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

<td><b>First Name</b></td><td><b>Extension</b></td> <td><b>Rubah?</d></td> </tr> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); Statement stmt = myConn.createStatement(); ResultSet myResultSet = stmt.executeQuery("select employee"); * =

from

if (myResultSet != null) { while (myResultSet.next()) { String eid = myResultSet.getString("empid"); String last = myResultSet.getString("lastname"); String first = myResultSet.getString("firstname"); String ext = myResultSet.getString("extension"); %> <tr> <td><%= eid %></td> <td><%= last %></td> <td><%= first %> </td> <td><%= ext %> </td> <td><a href='modproc.jsp?eid=<%= eid %>'>rubah</a></td>

</tr> <%

%> </table> <p> <a href="control.html">Go back to admin control</a> </body> </html>

} /* of while */ } /* of if */ stmt.close(); myConn.close();

Listing Program 2.19. : ( modproc.jsp )


<html> <head> <title> Merubah Record Employee </title> </head> <%@ page language="java" import="java.sql.*" %> <body> <h1>Merubah Record Employee</h1> <% String eid = request.getParameter("eid");

43

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); =

Statement stmt = myConn.createStatement(); ResultSet myResultSet = stmt.executeQuery("select * from employee where empid=" + eid); String optionSelected = ""; if (myResultSet != null) myResultSet.next(); // harus satu dan hanya satu record String elast = myResultSet.getString("lastname"); String efirst = myResultSet.getString("firstname"); String eext = myResultSet.getString("extension"); int ecity = myResultSet.getInt("cityofresidence"); int edept = myResultSet.getInt("dept"); %> <form method="post" action="updproc.jsp"> <table border="1" width="400"> <tr> <td><b>ID Employee:</b></td><td><%= eid %><input name="inpeid" type="hidden" value="<%= eid %>"></td> </tr> <tr> <td><b>Last Name:</b></td><td><input name="inplast" type="text" width="30" value="<%= elast %>"></td> </tr> <tr> <td><b>First Name:</b></td><td><input name="inpfirst" type="text" width="30" value="<%= efirst %>"></td> </tr> <tr> <td><b>Extension:</b></td><td><input name="inpext" type="text" width="4" value="<%= eext %>"></td> </tr> <tr> <td><b>City:</b></td><td><select name="inpcity"> <% myResultSet = stmt.executeQuery("select * from city"); if (myResultSet != null) { while (myResultSet.next()) { int cid = myResultSet.getInt("cid"); String cname = myResultSet.getString("name"); if (ecity == cid) optionSelected = "selected"; else optionSelected = ""; <option value='<%= cid %>' <%= optionSelected %>><%=

%>

cname %> <%

44

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

} %>

} /* of while */ /* of if */

</select> </td> </tr> <tr> <td><b>Department:</b></td><td><select name="inpdept"> <% myResultSet = stmt.executeQuery("select * from dept"); if (myResultSet != null) { while (myResultSet.next()) { int dpid = myResultSet.getInt("dpid"); String dpname = myResultSet.getString("name"); if (edept == dpid) optionSelected = "selected"; else optionSelected = ""; <option value='<%= dpid %>' <%= optionSelected %>><%=

%>

dpname %> <% } %>

} /* of while */ /* of if */

</select> </td> </tr> <tr> <td colspan="2"> <center> <input type="submit" value="Change Now"> </center> </td> </tr> <% stmt.close(); myConn.close(); %> </table> </form> <a href="control.html">Go back to admin control</a> </body> </html>

Listing Program 2.20. : ( updproc.jsp )


<html> <head> <title> Pemrosesan Perubahan Record Employee </title> </head>

45

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

<%@ page language="java" import="java.sql.*" %> <body> <% Class.forName("org.gjt.mm.mysql.Driver"); Connection myConn DriverManager.getConnection("jdbc:mysql:3306//wroxjsp? user=arispw&password=arispw"); String String String String String String ieid = request.getParameter("inpeid"); ilast = request.getParameter("inplast"); ifirst = request.getParameter("inpfirst"); iext = request.getParameter("inpext"); icity = request.getParameter("inpcity"); idept = request.getParameter("inpdept"); =

Statement stmt = myConn.createStatement(); int rowsAffected = stmt.executeUpdate("update employee set lastname='" + ilast + "', firstname='" + ifirst + "', extension='" + iext + "', cityofresidence=" + icity +",dept=" + idept + " where empid=" + ieid); if (rowsAffected == 1) { <h1>Success Merubah Record Employee</h1> <p> <a href="dbquery.jsp">See all employees</a><br> <a href="control.html">Go back to control center</a> <% %> <% } else { <h1>Sorry, Gagal Merubah Record.</h1> <a href="control.html">Go back to control center</a> } stmt.close(); myConn.close();

%>

%> </body> </html>

Sehingga jika dijalankan pada browser maka akan menampilkan sbb :

46

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 2.17. Tampilan dbmodemp.jsp

Jika dilakukan perubahan pada salah satu record maka akan browser akan memberikan tampilan sebagai berikut :

Gambar 2.18. Tampilan modproc.jsp Jika ditekan tombol Change Now maka pada browser akan menampilkan sbb :

47

Kuliah Umum IlmuKomputer.Com Copyright 2003 - 2006 IlmuKomputer.Com

Gambar 2.19. Tampilan updproc.jsp

3. REFERENSI a. Bergsten, Hans, JavaServer Pages, 3rd Edition, O'Reilly Media, 2003. b. Chopra, Vivek, et.al., Beginning JavaServer Pages, wrox, 2005 c. Galbraith, Ben, Beginning Jsp 2.0: Build Web Applications Using Jsp, Java, and Struts, Wrox Press 2003. 4. BIOGRAFI PENULIS

Aris Puji Widodo


Kelahiran Grobogan. Menyelesaikan studi S2 Teknik Informatika ITB Bandung dengan bidang Rekayasa Perangkat Lunak. Sekarang sebagai staff pengajar program studi Ilmu Komputer Universitas Diponegoro Semarang, dan beberapa perguruan tinggi swasta di Semarang, serta aktif pada proyek pengembangan perangkat lunak di beberapa instansi pemerintah dan swasta. e-mail : [email protected] / [email protected]

48

Anda mungkin juga menyukai