You are on page 1of 60

Pemrograman WEB ( JavaServer Pages )

JSP

MODUL PEMROGRAMAN WEB JAVASERVER PAGES

Semester IV

Disusun Oleh: Provider: Politeknik Negeri Padang Hanriyawan Adnan Mooduto Hendro Saptopramono

TEKNISI KOMPUTER DAN JARINGAN BIRO PERENCANAAN DAN KERJASAMA LUAR NEGERI DEPARTEMEN PENDIDIKAN NASIONAL

PENDAHULUAN
JSP ( JavaServer Pages ) adalah suatu bahasa pemrograman web (scripting) yang bersifat side server yang menggabungkan HTML dengan scripting tag dan program java. Suatu dokumen JSP ditandai dengan berkas ekstensi .jsp. Untuk menggunakan JSP pada modul ini, dibutuhkan aplikasi Apache Tomcat sebagai webserver dan Java Runtime Environment (JRE) 6. Aplikasi ini dapat di download pada: 1. Apache Tomcat: url: http://tomcat.apache.org/download-60.cgi file: apache-tomcat-6.0.7.tar.gz 2. Java Runtime Environment (JRE): url: http://developers.sun.com/downloads/top.jsp file: jre-linux-i586-rpm.bin Catatan: Kedua aplikasi di atas untuk Linux Platform !!!. Metoda dan Materi Modul Pemrograman WEB (JSP) merupakan matakuliah praktek. Untuk memberikan gambaran yang jelas, maka akan diberikan juga materi teori yang dilengkapi dengan latihan dan tugas untuk mempraktekkannya. Materi Modul Modul 1 2 3 4 5 6 7 8 9 10 11 12 Materi Download dan Instalasi Apache Environment ( Linux Platform) Tomcat, Java Runtime

Struktur dan Elemen (Ekspresi, Script Block/Scriptlet, Komentar, Deklarasi, Directive) JSP Implicit Object JSP Actions JavaServer Pages dan JavaBeans Workshop: Helloworld JSP Workshop: Deklarasi JSP Workshop: Directive JSP Workshop: Request Object Workshop: Response Object Workshop: Include Action Workshop: Forward Action

Prasyarat: HTML dan Java Referensi: 1) http://www.gulland.com/courses/JavaServerPages 2) http://tomcat.apache.org 3) http://developers.sun.com 4) http://cs.brynmawr.edu/%7Edkumar/JSPl 5) http://www.jsptut.com/

MODUL-1 DOWNLOAD, INSTALASI APACHE-TOMCAT dan Java Runtime Environment

DOWNLOAD 1. Apache Tomcat Untuk mendownload apache-tomcat ketik pada url address web browser http://tomcat.apache.org/download-60.cgi seperti pada gambar di bawah ini:

Berikutnya click link seperti pada gambar di bawah ini:

2. Java Runtime Environment (JRE) Untuk mendownload JRE ketik pada url address web browser http://developers.sun.com/downloads/top.jsp. Berikutnya ikuti petunjuk gambar di bawah ini.

INSTALASI Untuk instalasi masuklah ke terminal, lalu lakukan langkah sebagai berikut:

Ketik su, setelah ditekan tombol [enter] kemudian isilah password untuk root.

1. Apache Tomcat Selanjutnya ekstrak file apache-tomcat-6.0.7.tar.gz ke direktori /usr/local. Perintahnya: [path]# tar xzvfC apache-tomcat-6.0.7.tar.gz /usr/local Hasilnya terletak pada /usr/local/apache-tomcat-6.0.7 2. Java Runtime Environment Install file jre6-linux-i586-rpm.bin Perintahnya: [path]# ./jre6-linux-i586-rpm.bin Hasilnya terletak pada /usr/java

Langkah selanjutnya melakukan pengaturan terhadap apache tomcat dan JRE, yaitu dengan membuat dokumen setenv.sh yang disimpan pada /usr/local/apache-tomcat-6.0.7/bin. Perintahnya adalah: 1. [path]# vi /usr/local/apache-tomcat-6.0.7/bin/setenv.sh 2. Dalam editor vi ini ketik dan simpan seperti di bawah ini:

#!bin/sh #-----------------------------------# Set Environment #-----------------------------------CATALINA_HOME=/usr/local/apache-tomcat-6.0.7;export CATALINA_HOME JAVA_HOME=/usr/java/jre1.6.0;export JAVA_HOME

Mengaktifkan Apache Tomcat Untuk mengaktifkan apache tomcat ketik perintah seperti di bawah ini: [path]# /usr/local/apache-tomcat-6.0.7/bin/startup.sh Langkah berikutnya http://localhost:8080 buka browser dan ketikkan url:

Hasilnya adalah seperti pada gambar di bawah ini:

Menonaktifkan apache tomcat Untuk menonaktifkan webserver (apache tomcat), ketik perintah seperti di bawah ini: [path]# /usr/local/apache-tomcat-6.0.7/bin/shutdown.sh Direktori untuk berkas latihan JSP Buatlah direktori untuk menyimpan berkas-berkas latihan JSP dengan nama mywork dengan mengetikkan perintah seperti di bawah ini: [path]# mkdir /usr/local/apache-tomcat-6.0.7/webapps/mywork

MODUL-10 Workshop: Response Object

Tujuan workshop ini adalah untuk menciptakan sebuah cookie cutter JSP yang berguna dalam menciptakan cookies. Langkah-langkah: 1. Buat dan simpan script di bawah ini dengan nama 'CookieCutter.jsp' pada working directory JSP,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en-uk"> <head> <title>JSP Course - Response Workshop</title> <link rel="stylesheet" type="text/css" href="/global/main.css"> </head> <body style="margin: 10px;"> <H2>Cookie Analysis</H2> <P>The following cookies have been registered on the client by this web application.</P> <TABLE> <TR> <TH>Cookie Name</TH> <TH>Value</TH> </TR> <% //Get cookie array Cookie[] myCookies = request.getCookies(); //If array is not null then display cookies if(myCookies!=null) { for (int n=0; n < myCookies.length; n++) { //Display Cookie %> <TR> <TD><%= myCookies[n].getName() %></TD> <TD><%= myCookies[n].getValue() %></TD> </TR> <% } } %> </TABLE> </FORM> <H2>Cookie Cutter</H2> <P>The following form allows you to specify a name and a value of a cookie that you want to create. The JSP that receives this data 'makeCookie.jsp' contains code that creates the cookie.</P> <FORM name="frm" method="post" action="makeCookie.jsp"> <TABLE>

<TR> <TD>Cookie Name</TD> <TD><INPUT type="text" name="CookieName"></TD> </TR> <TR> <TD>Value</TD> <TD><INPUT type="text" name="CookieValue"></TD> </TR> <TR> <TD align=left><INPUT type="reset" value="Reset" name="Reset"></TD> <TD align=right><INPUT type="submit" value="Submit" name="Submit"></TD> </TR> </TABLE> </FORM> </BODY> </HTML>

2. Buatlah sebuah JSP baru yang disebut 'makeCookie.jsp' dan tambahkanlah HTML berikut.
<HTML> <HEAD> <TITLE>JSP Course - Request Workshop</TITLE> </HEAD> <BODY> <P><%= strMsg %>;</P> <P>Click back in your browser to view previous form, select refresh and see if your new cookie has indeed been created.</P> </BODY> </HTML>

3. Sebelum membuka <HTML> statement, tambahkanlah sebuah script block baru. Pada bagian ini kita akan menambahkah code untuk membuat sebuah cookie. Sebagai bagian dari process, kita ingin melakukan update strMsg dengan sebuah message untuk menyatakan apakah cookie berhasil dibuat atau terdapat problem. 4. Pertama-tama tambahkanlah kode berikut yang mendefinisikan variable ini dan mengambil form data,
String strMsg; String strCookieName = request.getParameter("CookieName"); String strCookieValue = request.getParameter("CookieValue");

5. Saat ini seperti biasa saat bekerja dengan form data, kita harus meyakinkan bahwa data tidak null atau kosong. Tambahkanlah informasi berikut untuk check strCookieName
if (( strCookieName!= nul l) &&(!strCookieName.equals(""))) { } else {

strM sg = "M ust provide a cookie name."; }

6. Pada bagian statement yang tepat, kita ingin membuat cookie,


Cookie c = new Cookie (strC ookieName,strCookieValue ); response.addCookie (c); strM sg = "Cookie successfully created.";

7. Simpan dan test apa yang telah anda kerjakan.

MODUL-11 Workshop: Include Action

Tujuan workshop ini adalah untuk menggunakan tag include action untuk memasukkan output dari satu file ke file lainnya. Langkah-langkah: 1. Buat dan simpan script di bawah ini pada JSP working directory dengan nama 'include2.jsp'.
<% //Get parameter String strName = request.getParameter("Name"); //If parameter not provided then use default value if((strName==null)||(strName.equals(""))) strName = "Parameter not provided"; %> <P><FONT FACE="Courier New" SIZE="10" COLOR="#3333990"> <% //Get length of string int intLength = strName.length(); for(int i=0; i < intLength; i++) { out.println(strName + "<BR>"); //Get first character char chrFirst = strName.charAt(0); //Move first character to end of string strName = strName.substring(1) + chrFirst; } %> </FONT></P>

2. Buat dan simpan script dibawah ini pada working directory JSP dengan nama 'include1.jsp'.
<HTML> <HEAD> <TITLE>JSP Course - Request Workshop</TITLE> <LINK rel="stylesheet" type="text/css " href= "/course.css" > </HEAD> <BODY> </BODY> </HTML>

3. Setelah membuka tag <BODY> tambahkanlah sebuah tag include action untuk memasukkan output pada "include2.jsp". Pada tag ini, tambahkanlah satu parameter action tag yang memiliki nama attribute yang disebut "Name" dan value attribute dari "YourName". 4. Simpan dan test yang anda kerjakan. 5. Bagaimanakah "include2.jsp" cara menentukan value parameter ?

MODUL-12 Workshop: Forward Action

Tujuan workshop ini adalah untuk menggunakan forward action dalam melakukan redirect workflow menurut pilihan yang dibuat oleh user. Disini kita akan menampilkan sebuah daftar workshops pada user dan bila salah satu telah mengambil pilihan, aplikasi akan menampilkan workshop tersebut. Langkah-langkah: 1. Buat dan simpan script di bawah ini pada working directory JSP dengan nama 'WorkshopList.htm'.
<HTML> <HEAD> <TITLE>JSP Course - Forward Action Workshop</TITLE> <LINK rel="stylesheet" type="text/css" href="/bou.css"> </HEAD> <BODY> <H2>Forward Action Workshop</H2> <HR> <P>Please select a workshop to demonstrate</P> <FORM action="forward.jsp" method="POST"> <TABLE> <TR> <TD> <SELECT size=8 name="Workshop"> <OPTION value="CookieCutter.jsp">Response object and cookies <OPTION value="declarations.jsp">Declarations workshop <OPTION value="directives_p1.jsp">Using directives to reference other Java classes <OPTION value="directives.jsp">Using the include directive <OPTION value="HelloWorld.jsp">Hello World workshop <OPTION value="survey.htm">Workshop on the request object and processing form data <OPTION value="include1.jsp">How to use the &lt;jsp:include/&gt; action </SELECT> </TD> </TR> <TR> <TD align=center> <INPUT type="submit" value=" Go " name="submit"> </TD> </TR> </TABLE> </FORM> <HR> <TABLE width="100%"> <TR> <TD align=right> </TD> </TR> </TABLE> </BODY> </HTML>

2. Buatlah JSP baru yang dinamai 'forward.jsp' dan tuliskanlah HTML nya. Kita ingin file ini mengambil pilihan yang dibuat oleh user dan selanjutnya meneruskan workflow tersebut pada JSP yang diinginkan. 3. Di awal JSP, tambahkan beberapa code untuk value option strWorkshop yang dipilih oleh user. 4. Selanjutnya tambahkan if statement yang digunakan, mengecek apakah strWorkshop tidak null atau empty. 5. Pada clause yang lain, yang mana parameter bersifat null atau empty, tambahkan hal berikut,
<HTML> <BODY> <P>M is s ing parameter</P> </BODY> </HTML>

6. Pada true clause tempat kita memiliki value, tambahkanlah tag forward action yang berguna untuk meneruskan request pada file yang memiliki strWorkshop. Ingatlah bahwa action tags ditulis pada bagian HTML dari sebuah JSP bukan di dalam tag <%..%>. 7. Simpan dan test apa yang telah anda kerjakan.

MODUL-2 STRUKTUR dan ELEMEN JSP

STRUKTUR JSP Di bawah ini adalah contoh dari script JavaServer Pages: <%
java.util.Date Tanggal = new java.util.Date (); %> <html> <body> <p>Tanggal hari ini adalah <%= Tanggal %> </p> </body> </html>

Secara sederhana terlihat bahwa JSP merupakan campuran antara HTML dan Java, dimana program Java menangani seluruh logika program, dan HTML mengatur penampilannya. Pada contoh di atas, teks antara tag <% dan %> adalah kode Java, jika dieksekusi menghasilkan penanggalan sistem pada variabel Tanggal. Nilai dari variabel ini dituliskan ke HTML dalam baris <p>Tanggal hari ini adalah <%= Tanggal %></p>. HTML selanjutnya mengirimkan respon ke client.

<html> <head> <title>title</title> <body> <% Java code; %> ........ </body> </html>

Struktur JavaServer Page

ELEMEN JSP Berikutnya, mari kita perhatikan script JSP di bawah ini:
<html> <head> <title>Test JSP</title> </head> <body> <h1>Test JSP</h1>

<% for (int c = 1; c < 10; c++) { out.println ("<p>Iterasi " + c + "</p>"); } %> </body> </html>

Seperti yang anda lihat script tersebut terdiri dari HTML standar dan Java yang terdapat dalam tag <% dan %>. Tag <% dan %> adalah elemen script block atau scriptlet. Ada beberapa elemen dalam JSP, yaitu:

Elemen Ekspresi Elemen ekspresi berisikan ekspresi kode Java yang memberikan suatu nilai. Nilai ini kemudian di tampilkan pada halaman HTML. Sintaks : <%= ekspresi Java %> Contoh:
<html> <head> <title>Test JSP</title> </head> <body> <h1>Test JSP</h1> <% for (int c = 1; c < 10; c++) { %> <p>Iterasi <%= c %></p> <% } %> </body> </html>

Elemen Script Block (Scriptlet) Elemen script block membatasi sekelompok kode java, yang isinya hanya kode java saja dan tidak ada HTML atau elemen script JSP lainnya. Sintaks : <% kode java %> Contoh:
<p> <% int a; for (a=1; a<10; a++) {

out.println ("<p>Loop - " + a + "</p>"); } %> </p>

Elemen Komentar ada beberapa variasi untuk memasukkan komentar dalam halaman JSP. Pertama dengan menggunakan tag komentar HTML, yaitu: Sintaks : <!-- komentar --> Yang kedua menggunakan tag komentar JSP, yaitu: Sintaks : <%-- komentar --> dan yang ketiga menggunakan perintah komentar pada Java pada elemen script block, yaitu: Sintaks : <% // komentar untuk satu baris /* komentarlebih dari satu baris */ %>

Elemen Deklarasi Elemen ini berfungsi untuk menuliskan suatu deklarasi variabel, procedure dan java method pada JSP. Sintaks: <%! Deklarasi %> Pada contoh di bawah ini dideklarasikan suatu variabel dan method:
<head> <%! private static int PI = 3.1415; private int jumlah(int a, int b) { return a + b; } %>

</head> <body> <p>10 tambah 12 adalah <%= jumlah(10, 12) %></p> <p>Keliling lingkaran dengan panjang 10cm adalah <%= PI * 10 %> cm</p> </body>

Elemen Directive Elemen ini memberikan penerimaan informasi pada container JSP dari hasil kompilasi suatu page JSP. Sintaks : <%@ directive attribute1="value1" %> Ada 2 tipe utama directive yaitu: 1. Page Directive Berfungsi untuk meng-import package-package atau mendefinisikan error pada page JSP. 2. Include Directive Berfungsi untuk menyisipkan suatu berkas ke servlet class pada saat berkas JSP di kompilasi ke dalam servlet. dan ketiga yang dikenalkan pada JSP 1.1 yaitu taglib yang mendefinisikan custom tag library yang akan digunakan oleh page JSP. Page Import Directive Sintaks: <%@ page import = "package1.*, package2,*,..." %> Directive ini menyisipkan koma sebagai pemisah antara package yang di import jika lebih dari satu. Package-package ini tersedia untuk elemen scriptlet, ekspresi, deklarasi, dan tag-tag dalam berkas JSP. Pada awalnya JSP mengimport package-package ini secara otomatis, yaitu javax.servlet, javax.servlet.http, javax.servlet.jsp, javax.servlet.tagext (JSP 1.1). Include Directive

Sintaks: <%@ include file="URL" %> Directive ini menyisipkan berkas teks JSP pada waktu translasi, apabila berkas JSP dikompilasi. Bila terjadi perubahan pada berkas yang disisipkan tersebut, maka akan dikompilasi ulang. Berikut ini contoh dari include directive, dimana berkas main.jsp disisip hasil output dari berkas date.jsp.
File 1: "main.jsp" <html> <head><title>Include Test</title></head> <body> <p> Tanggal dan waktu sekarang adalah <%@ include file="date.jsp " %> </p> </body> </html>

File 2: "date.jsp" <%@ page import=" java.util. * " %> <%= (new java.util.Date () ).toLocaleString () %>

Hasil tampilan di browser:


Tanggal dan waktu sekarang adalah Aug 30, 1999 2:38:40

Page ErrorPage Directive Sintaks: <%@ page errorPage="relativeURL" %> Directive ini mendefinisikan untuk menampilkan URL bila terjadi error pada page JSP.

Page isErrorPage Directive Sintaks: <%@ page isErrorPage="true|false" %>

Directive ini mendefinisikan errorpage directive, dan menentukan apakah pada JSP ini terjadi masalah. Jika true, kita bisa menggunakan exception object yang terdapat pada berkas JSP. Jika false (kondisi awal) maka kita tidak dapat untuk menggunakan exception object berkas JSP tersebut. Page Buffer Directive Sintaks: <%@ page buffer="none|8kb|sizekb" %>

Directive ini mengontrol buffer output yang dipakai pada JSP. Buffer output merupakan jumlah sekumpulan atau paket data HTML yang dikirim ke client (kondisi awalnya adalah 8kb).

MODUL-3 IMPLICIT OBJECT

Implicit Object (objek yang tersembunyi) adalah sekumpulan dari objek Java yang telah tersedia pada container JSP, dimana pengembang tidak perlu lagi membuatnya secara manual dari class-nya. Kita telah bertemu dengan salah satu objek ini yaitu out, dengan method yang kita gunakan println() untuk menampilkan suatu teks pada output stream. Beberapa Implicit Object dapat di lihat pada tabel di bawah ini: Objetc page config pageContext request response out session application Class atau Interface jsp.HttpJspPage ServletConfig jsp.pageContext http.HttpServletRequest http.HttpServletResponse jsp.JspWriter http.HttpSession ServletContext Deskripsi Kejadian page servlet Informasi konfigurasi Servlet Memberikan akses ke seluruh bidang yang berhubungan dengan page JSP dan akses ke masingmasing page attribute Berisikan data pada HTTP Request HTTP Response cookies data, misalnya

Output stream untuk page context Data session user tertentu Data di share oleh seluruh application page

Objek-objek tersebut dapat diakses melalui scripting element, JavaBeans dan servlets. Objek application, session dan request mempunyai sembarang nilai. Dengan men-set dan mengambil nilai attribute dari objek ini, maka dapat men-share informasi antara beberapa page JSP. Request Object Objek request menampilkan nilai yang dibrowser client melalui server selama HTTP request seperti headers, cookies atau parameters yang berhubungan dengan request. Diantara request object yang paling sering digunakan adalah untuk memperoleh parammeter atau query string values. Demonstrasi berikut mengilustrasikan request object untuk parsing form data. Servlet Class: javax.servlet.http.HttpServletRequest

Method getParameter(String name)

Deskripsi Mengembalikan value of request parameter sebagai sebuah String, atau null jika parameter tak ada. Mengembalikan sebuah Enumeration String objects yang terdapat pada nama parameter yang terdapat pada request. Mengembalikan array of String objects yang mengandung semua values yang telah diberikan oleh request atau null jika parameter tidak ada. Mendapatkan array dari cookies yang ditemukan pada request. Lihat keterangan berikut untuk penjelasan lebih lanjut dalam pengoperasian cookies. Mendapatkan setiap query string yang merupakan bagian HTTP request URI. Mendapatkan URI pada page JSP saat ini. Mengembalikan sebuah enumerator dari semua nama HTTP header Mengembalikan value sebuah HTTP header seperti "QUERY_STRING" atau "URL". Method untuk mendapatkan headerNames() dapat digunakan untuk menentukan apakah headers tersedia seperti contoh berikut. Mengembalikan object yang dihubungkan dengan attribute yang telah diberi nama. Mengembalikan nama semua attributes yang saat ini berhubungan dengan session. Mengatur object pada attribute yang telah diberi nama. attribute akan dibuat bila jika belum ada attribute yang dimaksud. Memindahkan object yang berhubungan dengan nama yang dikhususkan dari session ini.

getParameterNames()

getParameterValues(String name)

getCookies()

getQueryString() getRequestURI() getHeaderNames()

getHeader(String hdr)

getAttribute(String)

getAttributeNames()

setAttribute(String, object)

removeAttribute(String)

Cookie Class Method getCookies() pada request object mengembalikan array dari Cookie objects. Cookies yang digunakan untuk memperbolehkan web browsers untuk mendapatkan sejumlah kecil informasi atau menyebutkan data yang dihubungkan dengan suatu user's web browsing. Applikasi cookies yang lazim meliputi penyimpanan user preferences, Pengotomatisasian fasilitas low security user "sign on" , dan membantu mengumpulkan data yang digunakan untuk applikasi "shopping cart" style . Cookies diberi nama dan memiliki sebuah value tunggal. Cookies tersebut mungkin memiliki optional attributes, termasuk suatu comment yang ditampilkan pada user, path dan domain yang mana hosts dapat melihat cookie, maximum age, dan version. Informasi berikut ini menyusun sebuah cookie dengan nama dan value khusus.
Cookie(java.lang.String name, java.lang.String value)

Berikut in i method Objek Cookie: Method getComment() getMaxAge() getName() getPath() getValue() setComment(String) Deskripsi Mengembalikan comment yang menggambarkan tujuan cookie ini, atau null jika tidak ada comment yang telah didefinisikan. Mengembalikan maximum age cookie. mengembalikan nama cookie. Mengembalikan prefix dari semua URL yang mana cookie ditargetkan. Mengembalikan value cookie. Jika satu browser menampilkan cookie ini pada satu user, cookie akan dideskripsikan menggunakan comment ini. Mengatur maximum age cookie. Cookie yang akan kadaluarsa setelah beberapa detik akan hilang. Negative values mengindikasikan default behaviour: cookie tidak disimpan secara terus menerus dan akan dihapus ketika user web browser exit/keluar. Sebuah zero value menyebabkan cookie akan dihapus Cookie sebaiknya ditampilkan hanya dengan requests yang mengawali URL ini. Mengatur value cookie. Values dengan beraneka character khusus (white space, tanda kurung dan parentheses, the equals sign, comma, double quote, slashes, question marks, "at" sign, colon, serta semicolon) sebaiknya dihindari. values kosong tidak akan berlaku sama di semua browsers.

setMaxAge(int)

setPath(String)

setValue(String)

Contoh Request Object Berikut ini contoh untuk mendapatkan daftar cookies yang tersedia.
Cookie[] myCookies = request.getCookies (); for (int n=0; n < myCookies.length; n++) { out.prin t(myCookies [n].getName() + " "); out.print (myCookies [n].getValue () + "<BR>"); }

Contoh ini membentuk sebuah tabel HTTP headers dan respective values.
<table border=1 cellspacing=0 cellpadding=2> <% String strHeaderName = ""; for (Enumeration e = request.getHeaderNames(); e.hasMoreElements () ;) { strHeaderName = (String )e.nextElement(); %> <tr> <td><%= strHeaderName %></td> <td><%= request.getHeader(strHeaderName)%> </td> </tr> <% } %> </table>

Response Object Response object menangani output bagi client. Object dapat digunakan untuk meng-create HTTP Headers, cookies, mengatur content type dan me-redirect workflow. Servlet Class: javax.servlet.http.HttpServletResponse Method setContentType() addCookie(Cookie) Description Mengatur tipe MIME dan character pengkodean the page. Menambahkan cookie tertentu pada response. Penambahan ini dapat dilakukan berkali-kali untuk mengatur lebih dari satu cookie. Mengecek apakah response telah termasuk dalam header. Membentuk sebuah HTTP Header. Mengirimkan sebuah redirect response sementara bagi client menggunakan redirect location URL yang khusus (specified).

containsHeader(name) setHeader(name, value) sendRedirect(String)

Session Object Session implicit object digunakan untuk memberikan hubungan antara client dan server. Hubungan ini, atau disebut juga session, berlaku bagi banyak koneksi dan/atau requests selama periode waktu yang disediakan. Sessions digunakan untuk mempertahankan keadaan dan idnetitas user melalui page requests yang beragam. Sebuah session dapat dipertahankan tidak hanya dengan menggunakan cookies atau dengan URL rewriting. Untuk mengamati apakah client mendukung cookies, session merumuskan method CookieSupportDetermined() dan method UsingCookies() . Servlet Class: javax.servlet.http.HttpSession Method isNew() Description Sebuah session dianggap "new" jika session tersebut diciptakan oleh server, namun client belum diizinkan untuk bergabung dalam session ini. Membuang session, Me-release semua objects yang tersimpan sebagai attributes. Mengembalikan object yang berhubungan dengan nama attribute. mengembalikan nama semua attributes yang saat ini dihubungan dengan session. Mengatur object berdasarkan nama attribute. Attribute akan dibentuk bila attribut tersebut belum ada. Memindahkan object yang dibatasi dengan nama khusus dari session ini.

invalidate() getAttribute(String) getAttributeNames() setAttribute(String, object) removeAttribute(String)

Application Object Implicit object ini menampilkan application dimana the JSP berada. JSP dikelompokkan kedalam applications berdasarkan URL mereka yakni nama directory pertama pada sebuah URL yang didefinisikan pada application. application object memiliki method yang menyediakan informasi tentang container JSP, mendukung method logging plus utility sebagai contoh penterjemahan relative URL ke dalam absolute path. Servlet Class: javax.servlet.ServletContext

Method getAttribute(String objName)

Description Mengembalikan nama object objName atau Mengembalikan null jika objName tidak ada. Mengembalikan sebuah Enumeration yang mengandung nama attribute yang ada pada application. Menyimpan object dengan memberikan nama object dalam application ini. Memindahkan object objName dari application. Mengembalikan major version dari Servlet API untuk container JSP. Mengembalikan informasi tentang container JSP, jenis, nama dan versi product. Menerjemahkan resource URL dalam input stream untuk proses pembacaan. Menuliskan sebuah text string pada container JSP default log file.

getAttributeNames()

setAttribute(String objName, Object object) removeAttribute(String objName) getMajorVersion()

getServerInfo()

getResourceAsStream(Path) log(Message)

Menggunakan Application, Session dan Request Attributes Kemampuan untuk melakukan share sebuah object antar page JSP baik pada level request, session atau application dapat meningkatkan JSP application anda. Penting untuk diingat bahwa object ini di shared antar page bukannya dicopy dan dilewatkan antar page. Bagian ini disorot pada contoh kedua. Objects yang di-share pada level application dapat diakses dari semua user session. Ini berarti bahwa data seperti nama user atau credit card details sebaiknya tidak digunakan sebagai suatu application attribute. Satu contoh yang bagus yang dapat digunakan pada tingkat application level adalah hit counter. Kebutuhan untuk mempertahankan object pada request level jarang sekali, kecuali ketika bekerja dengan tag <jsp:include/> dan <jsp:forward/> yang akan dibahas nanti. Hal berikutnya yang perlu diperhatikan tentang attributes adalah bahwa mereka hanya mempertahankan objects variables primitive, sehingga type data tak dapat di-share dengan cara ini. Contoh berikut mengilustrasikan sharing sebuah object sebagai suatu application attribute. JSP pertama menciptakan sebuah new Array object dan mengaturnya sebagai sebuah application attribute:

buildArray.jsp <% //Define and build array String [] myArray = new String [4]; myArray[0] myArray[1] myArray[2] myArray[3] = = = = "Hello "; "there! "; "How are "; "you ? ";

//Set application attribute application.setAttribute ("StoredArray", myArray); %>

JSP kedua mendapatkan application attribute. Perhatikan bahwa penggunaan ini ketika retreiving attributes:
fetchArray.jsp <% //Retrieve application attribute String [] anotherArray = (String []) applicaton.getAttribute ( "StoredArray"); //Write out array values out.println (anotherArray out.println (anotherArray out.println (anotherArray out.println (anotherArray %> [0]); [1]); [2]); [3]);

Output dari JSP kedua adalah: Hello there! How are you ?

Pertanyaan: 1. Request object mengandung ? data yang terdapat pada HTTP request informasi pada session user data yang terdapat pada HTTP response informasi dari Container JSP 2. Manakah dari method berikut yang bukan termasuk dalam request object ? getParameter() getCookies() getHeader() sendRedirect() 3. Manakah dari hal berikut ini yang bukan suatu method dari session object ? invalidate() getAttribute() getPath() setAttribute() 4. Diantara cookie object, object apakah yang juga dibutuhkan untuk menciptakan sebuah cookie pada browser ? request response session application 5. Object manakah yang akan anda lihat untuk membaca data Form HTML ? request response session application 6. Objek manakah yang anda gunakan untuk men-share informasi user antar JSP ? request response session application

MODUL-4 JSP ACTIONS

Terdapat enam JSP Actions:


<jsp:include/> <jsp:forward/> <jsp:plugin/> <jsp:usebean/> <jsp:setProperty/> <jsp:getProperty/>

JSP Include Action <jsp:include/> memungkinkan anda untuk memasukkan output yang digenerasikan oleh file yang lain ke dalam JSP yang diinginkan. Output dari included document disisipkan ke dalam file original di bagian tag <jsp:include/> Syntax
<jsp:include page="URL" flush="true" /> atau <jsp:include page="URL" flush="true" > <jsp:param name="ParamName1" value="ParamValue1" /> <jsp:param name="ParamName2" value="ParamValue2" /> </jsp:include>

Page attribute merupakan suatu absolute atau relative URL pada file tempat output akan dicantumkan. (catatan, bagian ini tak boleh mengandung suatu protocol name, port number, atau nama domain). Pencantuman ini dapat berupa suatu static file, JSP yang lain, Servlet atau source apapun yang dapat menerima HTTP requests dan menggenerasikan output. Flush attribute mengendalikan apakah semua output yang ada di-flush-kan (dikirim pada browser) sebelum menyisipkan content ke dalam file. Meskipun demikian, spesifikasi JSP 1.1 saat ini hanya terbatas pada penggunaan true values. Ini mungkin keterbatasan yang mesti ditanggulangi pada spesifikasi masa depan. Important. Kenyataannya bahwa kita harus melakukan flush pada output buffer yang memungkinkan kita untuk mengoperasikan <jsp:include/> action. Secara khusus, penggunaan response.sendRedirect() page yang lain tidak lagi memungkinkan. Demikian pula, pengaturan cookies atau HTTP Headers tak akan berhasil. Proses ini dapat diaplikasikan pada kedua files yang digunakan: penyisipan file dan file yang disisipkan. Seperti yang dapat dilihat pada syntax kedua pada bagian include action dapat menggunakan parameters dalam format name-value pairs. Action dapat memiliki sebanyak-banyaknya parameters sesuai yang diperlukan. File yang sedang disisipkan menggunakan paramaters dengan cara yang sama seperti

yang anda gunakan pada setiap request parameter: penggunaan method request.getParameter("") . Action atau Directive ? Jadi apa yang kita gunakan? - include directive atau <jsp:include/> ?. Pada dasarnya, keduanya memiliki kelebihan dan kekurangan. Seperti biasa, semuanya bergantung pada apa persyaratan yang anda ajukan. Keunggulan penggunaan <jsp:include/> adalah,

menjamin recompilation secara otomatis, class sizes yang lebih kecil, dapat memanfaatkan parameters JSP expressions dapat digunakan dalam attribute values serta dapat menambahkan text dari berbagai source.

Salah satu keuntungan utama penggunaan include directive adalah local page variables dapat di shared diantara dua file. Sistem ini juga memiliki efisiensi run time yang lebih baik dan tidak membatasi output buffering.

JSP Forward Action <jsp:forward/> digunakan untuk melakukan proses transfer secara permanen dari satu JSP ke JSP lainnya pada local server. Setiap content yang telah digenerasikan oleh original page akan dibuang dan prosessnya akan kembali mulai dari awal pada JSP kedua. Syntax
<jsp:forward page="URL" /> <jsp:forward page="URL" > <jsp:param name="ParamName1" value="ParamValue1" /> <jsp:param name="ParamName2" value="ParamValue2" /> </jsp:forward>

Seperti yang anda lihat, tampak jelas bahwa prosedurnya mirip dengan <jsp:include/> yang mana kita mengkhususkan sebuah page attribute tempat file yang akan diajukan. Catatan, browser tidak diperhatikan ketika request diajukan pada JSP yang lain. Sebenarnya, browser masih menampilkan request URL yang original. Seperti halnya <jsp:include/> , <jsp:forward/> juga mendukung parameters dan penggunaan JSP expressions dalam body attribute values. Sebuah method alternatif untuk meneruskan data dari page pertama ke page selanjutnya dapat diartikan sebagai suatu proses untuk mempertahankan data sebagai attributes dari request object dengan cara yang sama saat mempertahankan attributes untuk session dan application objects seperti yang kita lihat sebelumnya. Pemberian <jsp:forward/> secara efektif akan menghentikan proses pada page terkini, tag ini digunakan secara khusus dalam conditional code.

Proses ini diilustrasikan dalam contoh berikut.


<% if (!strPassword.equal s("password")) { %> <jsp:forward page="Login.jsp" > <jsp:param name="FailReason" value="Wrong Password"/> </jsp:forward> <% } %> <H2>Welcome!</H2>

Catatan: Salah satu faktoryang perlu anda ingat dalam penggunan tag ini adalah interaksinya dengan output buffering. Ketika melakukan processing sebuah page encounters tag <jsp:forward/> , semua output yang digenerasikan sebelumnya akan dihilangkan. Namun, jika beberapa content telah dikirimkan kepada browser sebelumnya (flushed) selanjutnya IllegalStateException akan muncul. Untuk menghindari atau pun meyakinkan bahwa tag <jsp:forward/> muncul pada bagian atas page atau mengatur size buffer dapat digunakan buffer directive,
<%@ page buffer="12kb" %>

Hal penting lainnya yang dibahas secara singkat pada penjelasan sebelumnya terlihat bahwa browser tidak diberitahukan pada forwarding dan ternyata menampilkan request URL original. Hal ini akan mengganggu upset browser requests untuk menggunakan document relative URL atau menggunakan root relative URL. Contoh, mari kita anggap bahwa kita melakukan request URL berikut,
http://localhost/myJSPApp/Security/login.jsp

Ketika file "login.jsp" melakukan execute, tampilan yang akan muncul adalah <jsp:forward/> action,
<jsp:forward page="../Welcome/Welcome.jsp" />

Ini merupakan forward pada JSP lain yang ada di folder lain "Welcome" yang berada pada level yang sama sebagai "Security" folder. Browser URL akan membaca,
http://localhost/myJSPApp/Security/login.jsp

Saat ini, tidak perlu khawatir tentang bagaimana jika "Welcome.jsp" mengandung sebuah Form yang memiliki tag action "NewQuery.jsp",
<FORM name="QueryForm" action="NewQuery.jsp"

Selanjutnya browser akan menyelesaikan hal ini sebagai sebuah request,


http://localhost/myJSPApp/Security/NewQuery.jsp

yang akan berakhir dengan suatu "404 : File not Found" error since

"NewQuery.jsp" is in the "Welcome" folder. Yang kita inginkan adalah browser pada request,
http://localhost/myJSPApp/Welcome/NewQuery.jsp

Untuk menghindari hal ini, sebaiknya kita menambahkan specifikasi relative URL aplikasi dalam FORM,
<FORM name="QueryForm" action="/myJSPApp/Welcome/NewQuery.jsp" method="POST">

Method yang sama dengan <jsp:forward/> adalah response.sendRedirect() method. Method ini mirip dengan forwarding, kecuali bukannya passing pada request, method ini memberikan instruksi browser untuk menambahkan direksi ke page yang lain. Ini dilakukan dengan menambahkan sebuah redirect HTTP header. Ini merupakan pertanda penting bahwa page secara keseluruhan telah diexecuted dan output telah dikirimkan pada browser. Page baru hanya akan di executed bila terdapat request dari browser. Terlihat jelas bahwa kerugian sistem ini hanyalah adanya extra round trip pada server. JSP Plugin Action <jsp:plugin/> digunakan untuk melakukan pembangkitan spesifik HTML browser untuk menspesifikasikan Java applets yang bergantung pada Sun's Java plugin yang berbeda penggunaaanya dari applet biasa. Rangkuman Topik ini dikonsentrasikan pada <jsp:include/> dan <jsp:forward/> actions. Kita amati bahwa <jsp:include/> action dapat digunakan untuk memasukkan output dari page yang lain. Page yang disisipkan ini dapat berupa sebuah page JSP, Servlet atau hanya static HTML. The <jsp:forward/> action memiliki kemiripan pada structure kecuali bahwa terdapat request yang diforwardkan pada page kedua dengan pembuangan output dari page pertama.

Pertanyaan: 1. Pada bagian manakah JSP include action menyisipkan output? JSP lainnya File Plain text CGI Program Servlet Semua di atas 2. <jsp:include/> action dapat melewati parameters pada page tempat penyisipannya. Bagaimana page kedua mendapatkan value parameters ini ? Menggunakan <jsp:readParam/> action Menggunakan <jsp:getParam/> action Menggunakan request.getParameter() method Menggunakan response.getParameter() method 3. Apakah yang salah pada code berikut ini?
<% if(strPassword.equals("boss")) { <jsp:forward page="Welcome.jsp" flush="true"/> } else { <jsp:forward page="Login.jsp" flush="true"/> } %>

Bracket dalam statement tidak sesuai Flush attribute harus false Keyword 'file' yang terdapat pada 'page' seharusnya digunakan di dalam <jsp:forward/> action Actions tidak dapat digunakan dalam scriptlet blocks 4. Apakah yang salah pada code berikut ini?
<jsp:include page="MainMenu.jsp" flush="true"/> <% Cookie c = new Cookie("UserName", "Alastair Gulland"); response.addCookie(c); %>

Cookie class tidak dapat mengambil parameter dalam constructor-nya Request object digunakan untuk meng-create cookies Tidak ada error yang dilaporkan penggunaan dari <jsp:include/> action artinya response object tidak dapat digunakan untuk meng-create cookies. <jsp:include/> action seharusnya terletak di dalam script block

MODUL-5 JAVA SERVER PAGES dan JAVABEANS

Tujuannya adalah untuk memberikan suatu pendahuluan tentang JSP JavaBean architecture dan membahas keunggulan penggunaan JavaBeans. Apa itu JavaBean? JavaBean dapat diartikan sebagai pemanfaatan kembali software component. Yang dimaksudkan disini adalah kita dapat menuliskan satu JavaBean yang kemudian dapat digunakan pada beragam Java lainnya yang didasarkan pada softwares seperti applications, Servlets atau JSP pages. Dengan cara ini, kita dapat mendefinisikan business logic antara sebuah JavaBean dan selanjutnya secara konsisten menggunakan logic tersebut pada application terpisah. Dalam berbagai cara, mereka mirip dengan teknologi Microsoft's COM dan ActiveX. JavaBeans dapat pula memiliki suatu visual component yang mirip dengan ActiveX controls yang dapat di- dragged-dan-dropped ke dalam satu Visual Basic application. Tutorial ini tidak membahas ini karena kita akan lebih mengkonsentrasikan pada bagaimana JavaBeans dapat memberikan keuntungan pada JavaServer Page technology yang kita miliki. Keuntungan dari JavaBeans Saat ini kita memiliki tiga cara penulisan code yang dapat digunakan pada JSP. Yaitu, 1. tempatkan code diawal sebuah JSP pada declaration, 2. Gunakan include statement untuk melakukan reference file lainnya yang mengandung code dan sekarang3. Package code pada sebuah JavaBean Jadi, method manakah dan kapan kita gunakan? Seperti biasa, hal ini bergantung pada keadaan anda. Penulisan code antar JSP page tentu merupakan suatu hal yang mutlak, namun proses ini pasti akan membatasi jumlah kode yang dapat digunakan lagi. Penggunan include statements tentu akan menempatkan kita pada penggunaan ulang beberapa code tertentu, dan tentunya ini satu-satunya cara yang memungkinkan untuk kembali menggunakan HTML. Dengan menggunakan JavaBeans, anda sepenuhnya akan terpisah dari business logic pada proses generation display. Ini merupakan filosofi penting yang membawa anda pada system yang lebih terstruktur dan lebih handal. Dalam hal ini, anda akan menggunakan JavaServer Page untuk melakukan proses generate display secara dinamis dan juga untuk menangani interaksi dengan user. JavaBean akan mengambil alih bila anda ingin melakukan beberapa proses data complex atau saat anda ingin menggunakan access databases atau the file system. Keuntungan lainnnya menggunakan JavaBeans adalah business logic dapat dimanfaatkan lebih dari satu aplikasi. Sebagai contoh, baik client yang didasarkan pada aplikasi Java ataupun suatu page JSP dapat diakses melalui

JavaBean yang sama, selanjutnya menjamin bahwa kedua-duanya berfungsi sama. Poin terakhir yang perlu dicatat adalah bahwa penggunaan JavaBeans dapat membantu anda melakukan split tim pengembangan ke dalam Java experts dan HTML experts. Java experts bertugas menuliskan dan mengembangkan JavaBeans di lain pihak, HTML experts bertugas membuat design aplikasi web. Contoh JavaBean Lebih khusus, sebuah JavaBean hanyalah suatu Java class yang taat pada ketentuan berikut,

ia merupakan public class, ia memiliki sebuah public constructor tanpa arguments Ia membolehkan public untuk memilikinya dan mengatur methods yang digunakan untuk menulis dan membaca properties.

Properties selalu diakses dengan menggunakan konvensi penamaan yang lazim. Untuk tiap property dua methods harus ada method: getXxx() dan setXxx() yang mana Xxx merupakan nama property dan sebuah private instance variable. Ini merupakan poin penting karena anda dapat dengan mudah tertipu oleh syntax. Contohnya, jika anda menginginkan sebuah property yang disebut fileName kemudian kita harus menentukan suatu instance variable yang disebut fileName dan dua method: getFileName() dan setFileName(). Perhatikan perubahan kasus 'fileName'. Kode berikut merupakan contoh JavaBean sederhana
package com.bo.jspBean; public class employeeBean { private String firstName = ""; private String lastName = ""; //First Name property public void set FirstName( String name) { firstName = name; } public String getFirstName() { return firstName; } //Last Name Property public void setLastName(String name) { lastName = name; } public String getLastName() { return lastName; }

//Full Name Property - Read Only public String getFullName() { return firstName + " " + lastName; } }

Bean ini sedikit bersifat trivial. Ia memiliki tiga properties firstName, lastName dan fullName. Property terakhir hanya dibaca bila ia tidak memiliki suatu set method. Mengkompilasi JavaBean Cara terbaik untuk melakukan proses ini adalah dengan mendapatkan suatu Java Development seperti JBuilder yang memungkinkan proses creation JavaBean bersifat terbuka. Ini akan memungkinkan pengguna untuk melakukan debugging, compiling dan packaging hanya dengan mengklik mouse! Beberapa Application Server hanya dapat menggunakan bean ketika mereka telah termasuk dalam packaged, sementara yang lainnya dapat mengoperasikan JavaBeans yang unpackaged namun harus dicompiled sebagai file Java class. Bagian ini memberikan sebua penjelasan tentang langkah kerja yang mesti dilakukan . Step 1. Compile the class File Penginstallan JDK meliputi beberapa utilities yang akan kita gunakan untuk JavaBeans. Utility pertama, javac - java compiler, digunakan untuk mengcompile class file dari java source code file menggunakan the syntax berikut,
javac -verbose *.java

Option ini akan melaksanakan compile semua file ".java" dalam directory saat ini. verbose" option digunakan untuk melakukan membangkitkan informasi kompilasi. Ada option lain yang tersedia dan dirincikan dalam dokumentasi JDK. Step 2. Build the JAR Archive File Langkah ini tidak diperlukan oleh setiap JSP Engine, namun demikian, ini merupakan cara yang baik yang mana multiple JavaBeans dapat di package dalam satu file tunggal, sebagai contoh, semua financial JavaBeans di package dalam package finance.jar. Ini merupakan tempat sebuah Java Development Tool yang sangat penting meski bagian ini agak complex dan sangat mudah menimbulkan kesalahan. Kunci untuk mendapatkan files yang benar pada lokasi yang tepat adalah dengan mencantumkan right case sensitive file names. Pada working directory, kita harus menciptakan dua folders lainnya, yang pertama disebut sebagai "meta-inf" dan yang kedua harus memiliki nama yang sama dengan nama package yang digunakan pada definisi file class kita. Dalam folder yang kedua, kita tempatkan semua file class yang ingin kita bundled ke dalam file JAR archive kita. Sedangkan pada folder pertama, kita

create sebuah file manifest. File manifest ini sangat penting sebagai Container JSP yang digunakan untuk menentukan struktur file JAR. Ini merupakan file plain text yang secara khusus diberi nama "manifest.mf" dan disusun seperti,
Name: packageName/className.class Java-Bean: True

yang mana packageName merupakan nama package (dan, tentu saja, juga merupakan nama folder yang mengandung class files) dan className merupakan nama class tempat kita menyisipkan pada file JAR. Masing class memerlukan own entry sendiri seperti sistem ini, dan catatan, entry terakhir harus diikuti dengan carriage return. Selanjutnya kita menjalankan jar utility yang akan membangun JAR file. Proses ini membutuhkan format berikut,
jar cvmf meta-inf\manifest.mf jarName.jar packageName\*.class

Format ini harus dimasukkan sebagai line tunggal dan jarName merupakan nama file JAR yang sedang kita bangun dan packageName merupakan nama folder tempat file class kita berada(lagi-lagi ini merupakan nama package). File JAR biasanya dinamai sama dengan nama package. Catatan: jika nama package di susun seperti com.acme.mypackage selanjutnya "." harus diganti dengan "\" ketika menulis jar command. Sebagai contoh,
jar cvmf meta-inf\manifest.mf jarName.jar com\acme\mypackage\*.class

Cvmf clause merupakan options yang ada pada JAR utility. C menginstruksikan utility untuk membuat sebuah file JAR, v menjelaskan output compilation, m mengindikasikan bahwa kita memberikan sebuah file manifest dan f mengindikasikan bahwa kita memberikan nama file JAR. Options ini dan optionoption lainnya dibahas secara lebih lengkap dalam dokumentasi JDK. Sehingga dalam contoh ini kita akan mengentri (sebagai line tunggal),
jar cvmf meta-inf\mainfest.mf jspBeans.jar jspBeans\*.class

Untuk details pada JAR files silahkan lihat JAR section yang ada dalam Java Tutorial di Sun's web site. Step 3. Deploying the JavaBean Ketika kita telah men-create JavaBean, kita selanjutnya harus menempatkan file pada lokasi yang sesuai di harddrive sehingga dapat diakses oleh Application Server. Jika anda sedang menggunakan JavaBean unpackaged, kemudian tempatkan file dibawah classes folder pada WEB-INF folder. Jika anda sedang menggunakan nama package seperti com.acme.mypackage selanjutnya anda harus men-create folder structure ini dibawah "WEB-INF/classes" seperti "WEBINF/classes/com/acme/mypackage/mybean.class".

Jika anda telah melakukan packaged JavaBean pada satu file jar, selanjutnya tempatkan file pada folde "WEB-INF/lib". Anda mungkin harus merestart Application Server sebelum JavaBean dikenali. JSP Actions untuk JavaBeans Untuk menggunaka suatu JavaBean pada page JSP, kita mesti melaksanakan tiga JSP actions yang kita lihat sebelumnya. Mereka adalah,

<jsp:useBean/> - find or instantiate a JavaBean <jsp:setProperty/> - sets the property of a JavaBean <jsp:getProperty/> - gets the value of a JavaBean property

Bagian pertama digunakan untuk melaksanakan spesifikasi JavaBean yang mana yang akan kita gunakan pada page. Kedua actions berikutnya, sesuai dengan namanya, digunakan untuk melaksanakan setting dan mendapatkan values properties JavaBean.

useBean Action
Syntax
<jsp:useBean id="beanID" scope="beanScope" class="package.beanName" />

BeanID merupakan variable yang anda gunakan pada code anda untuk melaksanakan reference Bean, beanScope merupakan scope yang dimiliki oleh Bean yang dapat berupa salah satu dari values berikut, Value page request session application Description Ini bertahan hingga page selesai dan tidak ada storage of state. JavaBean instance bertahan untuk client request dan tetap ada jika request diajukan. JavaBean bertahan selama client session. JavaBean dihentikan dengan application dan tetap dapat digunakan hingga application berakhir.

Package dan beanName mengacu pada package dan nama JavaBean yang ingin anda gunakan. Catatan, beberapa applications servers mensyaratkan anda untuk menggunakan page import directive untuk referensi package atau class yang mengandung JavaBean. setProperty and getProperty Actions Sistem ini digunakan untuk mengatur dan membaca property values.

Syntax
<jsp:setProperty name="bean" property="propertyName" value="val" /> <jsp:getProperty name="bean" property="propertyName" />

BeanID merupakan variable nama yang digunakan dalam tag <jsp:usebean/> dan propertyName merupakan nama property yang sedang anda setting atau peroleh. Untuk menggunakan suatu variable baik sebagai sebuah property atau lebih sering sebagai sebuah value, diantara tanda kutip, masukkan JSP expression yang mengembalikan value dari variable. Contohnya,
<jsp:setProperty name="employeeBean" property="firstName" value="<%= strFirst %>" />

yang mana strFirst merupakan variable yang ada pada page. Contoh: JavaServer Page berikut memberikan ilustrasi bagaimana membuat access JavaBean dari sebuah JavaServer Page. JavaBean yang sedang digunakan disini merupakan salah satu yang telah kita lihat sebelumnya.
<HTML> <HEAD> <TITLE>Example: Simple Java Bean</TITLE> <jsp:useBean id="employeeBean" scope="page" class="com.acme.mybean.EmployeeBean" /> </HEAD> <BODY> <% String last = "Burns"; %> <%-- Set bean properties --%> <jsp:setProperty name="employeeBean" property="firstName" value="Robert" /> <jsp:setProperty name="employeeBean" property="lastName" value="<%=last%>" /> <%-- Get bean properties --%> <P> <jsp:getProperty name="employeeBean" property="fullName" /> </P> </BODY> </HTML>

Catatan, kita juga dapat memanggil associated property method secara langsung pada Java code dengan menggunakan syntax seperti,
employeeBean.setFirstName("Robert"); employeeBean.setLastName("Burns"); String name = employeeBean.getFullName();

JavaBeans dan HTML Form Synchronisation Form synchronisation merupakan suatu bentuk feature JSP yang membuat sinkronisasi form HTML dengan sebuah JavaBean, yang selanjutnya berkaitan erat dengan repetitive coding ini. Lebih jauh, tiap-tiap element Form akan sinkron dengan sebuah property JavaBean yang memiliki nama yang sama dengan element Form. Syntax Untuk memungkinkan terbentuknya sinkronisasi, yang perlu anda lakukan hanyalah menambahkan statement berikut setelah anda menuliskan deklarasi JavaBean.
<jsp:setProperty name="BeanName" property="*" />

BeanName merupakan nama yang ditunjuk pada the JavaBean dalam deklarasi <usebean/> . Selanjutnya, pastikan bahwa element Form dinamai sama dengan JavaBean properties untuk mengingat: case sensitivity. Rangkuman JavaBeans merupakan

Component yang didasarkan pada technology Java classes yang tunduk pada beberapa aturan specific. Cara yang bagus untuk memindahkan complex business logic code dari display orientated code pada suatu JSP

Pertanyaan: 1. JavaBeans adalah ? Java class file Servlets Applets Form dari JSP 2. Keuntungan menggunakan JavaBeans adalah ? useability Pemisahan logic dari presentasi Reuseability Semua di atas 3. Ketika menggunakan <jsp:useBean/> untuk mereferensi satu JavaBean yang digunakan pada JSP, id attribute mendefinisikan, Nama class dari JavaBean Nama package dari JavaBean Nama instan dari JavaBean Tidak ada id attirbute 4. Pada <jsp:setProperty/> dan <jsp:getProperty/> attribute JSP expressions yang dapat digunakan sebagai value, contohnya,
<jsp:setProperty name="employeeBean" property="firstName" value="<%= strFirst %>" />

True False 5. Untuk melakukan sinkronisasi sebuah HTML form dengan satu JavaBean manakah statements yang anda gunakan sebagai tambahan? <jsp:synchronize name="BeanName" /> <jsp:setProperty name="BeanName" property="" /> <jsp:setProperty name="BeanName" property="*" /> <jsp:setProperty name="BeanName" property="All" />

MODUL-6 Workshop: Hello World JSP

Objektif dari workshop ini adalah menampilkan pada browser kalimat Hello World dalam 7 baris dengan ukuran font yang bertambah besar. Langkah-langkah: 1. Buatlah berkas baru dengan nama helloworld.jsp pada working directory JSP yaitu mywork dan tulislah perintah HTML berikut ini dengan menggunakan teks editor:
<html> <head> <title>Hello World JSP</title> </head> <body> </body> </html>

2. Diantara tag body tulislah tag script berikut:


<body> <% %> </body>

3. Di dalam tag <% dan %> tulislah seperti di bawah ini:


for(int i=1; i <= 7; i++) { }

4. Di dalam proses loop for , kita tutup script block(tag penutup JSP) bagi menuliskan perintah HTML dan setelah itu buka kembali script block (tag pembuka JSP), seperti berikut:
%> <p><font size="">Hello World</font></p> <%

5. Berikutnya simpan berkas tersebut, dan untuk mencobanya buka browser dan tulis url seperti di bawah ini:
http://localhost:8080/mywork/helloworld.jsp

Script JSP Hellow World: <html> <head> <title>Hello World JSP</title> </head> <body> <% for(int i=1; i <= 7; i++) { %> <p><font size="">Hello World</font></p> <% } %> </body> </html>

Pertanyaan: 1. Apakah hasil yang ditampilkan browser sesuai dengan objektif dari workshop ini? Jika tidak, bagaimana solusinya?. 2. Hapus deklarasi int variabel i pada loop. Pesan error apa yang terjadi pada tampilan browser?. 3. Buatlah berbagai error dan perhatikan bagaimana pesan error itu ditampilkan pada browser.

MODUL-7 Workshop: Deklarasi JSP

Objektif dari wokshop ini adalah memakai elemen deklarasi untuk menjelaskan suatu method yang mana akan membalikkan karakter pada suatu string. Langkah-langkah: 1. Buatlah berkas dengan nama deklarasi.jsp pada direktori mywork, dan tulislah HTML berikut:
<html> <head> <title>Deklarasi</title> </head> <body> <p>Kalimat,</p> <p><i></i></p> <p>Dibaca terbalik seperti ini,</p> <p><i></i></p> </body> </html>

2. Pada bagian paling atas, definisikan string berikut ini (ditulis dalam satu baris),
String strQuote = "Belajar sendiri JavaServer Page, untuk mahasiswa Rintisan Pendidikan Jarak Jauh";

3. Dalam tag italic, pertama tampilkan nilai variabel tersebut. 4. Tambahkan deklrasi JSP yang berisikan suatu method dengan panggilan reverseString() dengan parameter input String dan nilai baliknya String. 5. Tambahkan kode untuk method ini dengan hasil String dalam bentuk terbalik. Anda dapat menggunakan method length() dan substring() dari string class. 6. Terakhir tampilkan String yang terbalik itu pada tag italic yang kedua, seperti berikut ini:
<p>Dibaca terbalik seperti ini,</p> <p><i> <%= reverseString (strQuote) %> </i></p>

7. Buka browser dan ketik url http://localhost:8080/mywork/deklarasi.jsp

Script JSP: Deklarasi <%! private String reverseString (String text) { String strNew = ""; for(int i = text.length(); i>0 ; i--) { str New += text.substring(i -1, i); } return strNew;

} %>

<% String strQuote = "Belajar sendiri JavaServer Page, untuk mahasiswa Rintisan Pendidikan Jarak Jauh"; %> <html> <head> <title>Deklarasi</title> </head> <body> <p>Kata,</p> <p><i><%= strQuote %></i></p> <p>Dibaca terbalik jadinya seperti ini,</p> <p><i><%= reverseString (strQuote) %></i></p> </body> </html>

MODUL-8 Workshop: Directive JSP

Objektif dari workshop ini ada dua, yang pertama untuk menampilkan format suatu nilai, dan yang kedua mengkonversikan string ke double. Langkah-langkah: 1. Buatlah berkas dengan nama directive.jsp yang disimpan pada direktori mywork. Lalu tulislah script berikut ini:
<html> <head> <title>Directive</title> </head> <body> <% //Deklaras i Angka dan String Double dblSalary = 5000.23; String strRent = "400"; %> <p> Format Angka sebagai String: <b><%= makeString (dblSalary ) %></b> </p> <% //Kenaikan sebesar 10% Double dblNewRent = makeDouble (strRent); dblNewRent = dblNewRent + (dblNewRent * 0.1); %> <p> Konversi ke String: <b><%= makeStrin g(dblNewRent) %></b> </p> </body> </html>

2. Pada kode di atas terlihat ada dua method lokal yaitu makeDouble() dan makeString(). Tulis dan sisipkan deklarasi di bawah ini pada kode di atas.
<%! //Method untuk memformat double sebagai string private String makeStrin g(Double n) { }

//Method untuk memformat string ke double private Double makeDouble(String s) { } %>

3. Berikutnya tuliskan di bawah ini mengkonversikan string ke double.

pada

makeString

yang

akan

NumberFormat nf = NumberFormat.getC urrencyInstance ( Locale.US ); return nf.format(n);

4. NumberFormat class didefinisikan pada package java.text dan Locale class didefinisikan pada package java.util. Tambahkanlah directive yang dipakai sebagai referensi oleh kedua class tersebut. 5. Berikutnya tuliskan di bawah ini pada makeDouble konversikan string ke double.
Double d = new Double (s); return d.doubleValue ();

yang meng-

6. Double class didefinisikan pada package java.lang dan package ini juga dipakai sebagai referensi class tersebut. Tuliskanlah directive untuk ini. 7. Simpan dan bukalah browser dengan url
http://localhost:8080/mywork/directive.jsp

Menggunakan include directive: Berikutnya untuk workshop ini menggunakan include directive. Langkah-langkah: 1. Buka berkas directive.jsp, lalu lakukan cut dan paste baris yang berisikan page import directive dan deklarasi ke berkas yang baru. 2. Simpan berkas ini dengan nama formatting.jsp. 3. Berikutnya pada berkas directive.jsp tambahkan include directive untuk berkas formatting.jsp 4. Simpan dan cobalah perubahan ini.

Script JSP: Directive <%@ page import = "java.util.*, java.text.*, java.lang. * " %> <%! //Method untuk memformat double sebagai string private String makeString (Double n) { NumberFormat nf = NumberFormat.getC urrencyInstance ( Locale.US ); retur n nf.format (n); } //Method untuk memformat string ke double private Double makeDouble (String s) { Double d = new Double (s); retu rn d.doubleValue (); } %> <html> <head> <title>Directive</title> </head> <body> <% //Deklaras i Angka dan String Double dblSalary = 5000.23; String strRent = "400"; %> <p> Format Angka sebagai String: <b><%= makeStrin g(dblSalary ) %></b> </p> <% //Kenaikan sebesar 10% Double dblNewRent = makeDouble (strRent); dblNewRent = dblNewRent + (dblNewRent * 0.1); %> <p> Konvers i ke String: <b><%= makeStrin g(dblNewRent) %></b> </p> </body> </html>

Script JSP: Include Directive File- 1: formatting.jsp <%@ page import ="java.util.*, java.text.*, java.lang. *" %> <%! //Method untuk memformat double sebagai string private String makeStrin g(Double n) { NumberFormat nf = NumberFormat.getCurrencyInstance ( Locale.US ); return nf.format (n); } //Method untuk memformat string ke double private Double makeDouble(String s) {

} %>

Double d = new Double (s); return d.doubleValue();

File -2: directive.jsp <%@ include file ="formatting.j sp" %> <html> <head> <title>Directive</title> </head> <body> <% //Deklarasi Angka dan String Double dblSalary = 5000.23; String strRent = "400"; %> <p> Format Angka sebagai String: <b><%= makeString(dblSalary ) %></b> </p> <% //Kenaikan sebesar 10% Double dblNewRent = makeDouble (strRent); dblNewRent = dblNewRent + (dblNewRent * 0.1); %> <p> Konversi ke String: <b><%= makeStrin g(dblNewRent) %></b> </p> </body> </html>

MODUL-9 Workshop: Request Object

Tujuan wokshop ini adalah untuk menganalisa data yang dimasukkan ke dalam sebuah form HTML. Sebagian besar kerja yang akan anda laksanakan terdapat dalam JSP merupakan jenis pemrosesan form, sehingga penting bagi anda untuk memahami bagaimana masing-masing kontrol bekerja dan pada format mana pengiriman data ke server dilaksanakan. Langkah-langkah: 1. Buat file HTML di bawah ini dan simpan pada direktori kerja JSP dengan nama survey.htm.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en-uk"> <head> <title>JSP Course - Request Workshop</title> </head> <body style="margin: 10px;"> <H2>Request Workshop</H2> <P>This workshop involves analysing the data a user provides to a HTML form. Complete this form and hit submit. If your JSP solution works it should display the data you entered in this form</P> <FORM name="frm" method="post" action="request.jsp"> <TABLE BORDER="0" CELLPADDING="6" CELLSPACING="0"> <TR> <TD>First Name</TD> <TD><INPUT type="text" name="FirstName"></TD> </TR> <TR> <TD>Last Name</TD> <TD><INPUT type="text" name="LastName"></TD> </TR> <TR> <TD valign="top">Nationality</TD> <TD> <INPUT type="radio" name="Nationality" value="EU">European<BR> <INPUT type="radio" name="Nationality" value="NA">North American<BR> <INPUT type="radio" name="Nationality" value="SA">South American<BR> <INPUT type="radio" name="Nationality" value="AF">African<BR> <INPUT type="radio" name="Nationality" value="AS">Asian<BR> <INPUT type="radio" name="Nationality" value="AU">Australasian<BR> <INPUT type="radio" name="Nationality" value="OT">Other<BR> </TD> </TR> <TR> <TD valign="top">Age group:</TD> <TD> <SELECT name="AgeGroup"> <OPTION value="0">0 to 10</OPTION> <OPTION value="10">10 to 20</OPTION> <OPTION value="20">20 to 30</OPTION> <OPTION value="30">30 to 40</OPTION>

<OPTION value="40">40 to 50</OPTION> <OPTION value="50">50 above</OPTION> </SELECT> </TD> </TR> <TR> <TD valign="top">Favourite Ice Cream Flavours</TD> <TD> <INPUT type="checkbox" name="Flavour" value="Vanilla">Vanilla<BR> <INPUT type="checkbox" name="Flavour" value="Strawberry">Strawberry<BR> <INPUT type="checkbox" name="Flavour" value="Chocolate">Chocolate<BR> <INPUT type="checkbox" name="Flavour" value="Raspeberry">Raspberry<BR> <INPUT type="checkbox" name="Flavour" value="Nut">Nut<BR> <INPUT type="checkbox" name="Flavour" value="Banana">Banana<BR> <INPUT type="checkbox" name="Flavour" value="Peach">Peach<BR> </TD> </TR> <TR> <TD valign="top">At the weekend I am mostly<BR> (select all that apply)</TD> <TD> <SELECT MULTIPLE SIZE=4 name="Weekend"> <OPTION>Eating</OPTION> <OPTION>Sleeping</OPTION> <OPTION>Drinking</OPTION> <OPTION>Watching TV</OPTION> <OPTION>Playing Sports</OPTION> <OPTION>Filling out online surveys</OPTION> <OPTION>Regretting drinking too much the night before</OPTION> </SELECT> </TD> </TR> <TR> <TD WIDTH="100%" COLSPAN="2" align=center> <INPUT type="reset" value="Reset" name="Reset"> <INPUT type="submit" value="Submit" name="Submit"> </TD> </TR> </TABLE> </FORM> </BODY> </HTML>

2. Buat file JSP baru dengan nama 'request.jsp' dan tulislah HTML berikut ini:
<HTML> <HEAD> <TITLE>JSP Course Request Workshop</TITLE> </HEAD> <BODY> <P>Your first name is <B><%= strFirstName %></B> and your last name is <B><%= strLastName %></B></P> <P>Your nationality i s <B><%= strNationality %></B></P> <P>Your age group is <B><%= strAgeGroup %></B></P>

<P>Your favourite ice cream flavours are <B><%= strFlavours %></B></P> <P>At the weekend your like to do the following</P> </BODY> </HTML>

3. Pada awal script di atas(langkah no.2) buat script block baru JSP. 4. Pertama kita ambil first name dan last name yang telah diisikan pada form,
String strFirstName = request.getParameter("FirstName"); String strLastName = request.getParameter("LastName");

5. Berikutnya kita lakukan validasi terhadap data tersebut, tujuannya agar data yang diperoleh tidak boleh kosong. Tambahkan code seperti di bawah ini,
if (( strF irstName == null ) ||(strFirstName.equal s("" ))) strFirstName = "not specifie d"; if (( strLastName== null )||( strLastName.equals (""))) strLastName = "not specified";

6. Selanjutnya kita ingin menentukan Nationality yang dipilih user. Tambahkanlah hal berikut ini untuk memilih Nationality code,
String strNationalityCode = request.getParameter("Nationality" ); String strNationality;

7. Kita ingin melakukan strNationality dengan text yang sesuai namun pertama-tama kita harus mengecek null data,
if (strNationality Code != null) { } else { strNationalit y = "not specified "; }

8. Pada true clause tambahkan if..else .Jika statement yang mengatur users selected nationality menggunakan code yang sama dengan
if (strNationalityCode.equals ("E U")) strNationalit y = "E uropean";

9. Elemen form Age group dapat diperlakukan dengan cara yang sama dengan nationality di atas. Tambahkanlah code yang sesuai sehingga strAgeGroup teratur pada value yang dipilih user. Periksalah source HTML untuk menentukan apa code yang digunakan untuk age group.

10.Dua form elements terakhir, check boxes dan multi-select list box dapat diperlakukan dengan cara yang sama. Form element ini mengirimkan data mereka sebagai sebuah string array yang dapat dipilih dengan,
Strin g[] strWeekend = request.getParameterValues ("Weekend");

Ini tidak sepenuhnya benar. Browser sebenarnya mengirimkan nilai parameter yang semuanya memiliki nama yang sama dan container JSPlah yang mengkonstruksikan array saat ia menganalisa HTTP header yang diperoleh dari client. 11.Tambahkan code pada solusi anda, untuk memilih value dari check boxes dan multi-select list box. 12.Tutup script block dan pindahkan JSP pada the HTML yang menyatakan "Your favourite ice cream flavours are." Setelah baris ini menuliskan contents astrFlavours array sehingga pilihan ditampilkan pada page. Laksanakan cara yang sama pada weekend activities berikutnya. 13.Simpan dan test apa yang anda kerjakan.

Solusi Workshop

Source Code untuk helloworld.jsp: <%-Solusi workshop modul-6 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Solusi workshop Hello World</title> </head> <body> <h2>Hello World Workshop</h2> <p>Solusinya terlihat seperti ini:</p> <hr> <% for(int i=1; i <= 7; i++) { %> <p><font size="<%= i %>">Hello World</font></p> <% } %> </body> </html>

Source Code untuk deklarasi.jsp:

<%-Solusi workshop modul-7 --%> <%! private String reverseString(String text) { String strNew = ""; for(int i = text.length(); i>0 ; i--) { strNew += text.substring(i-1, i); } return strNew; } %> <% //Define the quote String strQuote = "Belajar sendiri JavaServer Page, untuk mahasiswa Rintisan Pendidikan Jarak Jauh"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en-uk"> <head> <title>Solusi workshop Deklarasi</title> </head> <body style="margin: 10px;"> <h2>Declaration Workshop</h2> <P>Solusinya terlihat seperti ini:</P> <HR> <P>Kalimat,</P> <P><I><%= strQuote %></I></P> <P>Dibaca terbalik seperti ini,</P> <P><I><%= reverseString(strQuote)%></I></P> </body> </html> Source Code untuk directive.jsp:

<%-Solusi workshop modul-8 --%> <%@ include file="formatting.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Directive</title> </head> <body style="margin: 10px;"> <H2>Directives Workshop</H2> <BODY> <% //Declare number and string double dblSalary = 5000.23; String strRent = "400"; %> <P>Format Angka sebagai String: <B><%= makeString(dblSalary) %></B></P> <% //Increase rent by 10% double dblNewRent = makeDouble(strRent); dblNewRent = dblNewRent + (dblNewRent * 0.1); %> <P>Konversi ke String: <B><%= makeString(dblNewRent) %></B></P> </body> </html>

Source Code untuk request.jsp

<%-Solusi workshop modul-9 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>JSP Course - Request Workshop</title> </head> <body style="margin: 10px;"> <H2>Request Workshop</H2> <% //Get users name String strFirstName = request.getParameter("FirstName"); String strLastName = request.getParameter("LastName"); if((strFirstName==null)||(strFirstName.equals(""))) strFirstName="not specified"; if((strLastName==null)||(strLastName.equals(""))) strLastName="not specified"; //Get nationality String strNationalityCode = request.getParameter("Nationality"); String strNationality; if(strNationalityCode!=null) { if(strNationalityCode.equals("EU")) strNationality = "European"; else if(strNationalityCode.equals("NA")) strNationality = "North American"; else if(strNationalityCode.equals("SA")) strNationality = "South american"; else if(strNationalityCode.equals("AF")) strNationality = "African"; else if(strNationalityCode.equals("AS")) strNationality = "Asian"; else if(strNationalityCode.equals("AU")) strNationality = "Australasian"; else if(strNationalityCode.equals("OT")) strNationality = "Other"; else strNationality = "not specified"; } else { strNationality = "not specified"; }

//Get Age Group String strAgeGroupID = request.getParameter("AgeGroup"); String strAgeGroup; if(strAgeGroupID!=null) { if(strAgeGroupID.equals("0")) strAgeGroup = "0 to 10"; else if(strAgeGroupID.equals("10")) strAgeGroup = "10 to 20"; else if(strAgeGroupID.equals("20")) strAgeGroup = "20 to 30"; else if(strAgeGroupID.equals("30")) strAgeGroup = "30 to 40"; else if(strAgeGroupID.equals("40")) strAgeGroup = "40 to 50"; else if(strAgeGroupID.equals("50")) strAgeGroup = "50 and above"; else strAgeGroup = "not specified"; } else { strAgeGroup = "not specified"; } //Get ice cream flavours String[] astrFlavours = request.getParameterValues("Flavour"); //Get weekend activity String[] strWeekend = request.getParameterValues("Weekend"); //Now write out this data to screen %> <P>Your first name is <B><%= strFirstName %></B> and your last name is <B><%= strLastName %></B></P> <P>Your nationality is <B><%= strNationality %></B></P> <P>Your age group is <B><%= strAgeGroup %></B></P> <P>Your favourite ice cream flavours are,</P> <% if(astrFlavours!=null) { out.println("<UL>"); for(int i=0; i < astrFlavours.length; i++) { out.println("<LI>" + astrFlavours[i]); } out.println("</UL>");

} else { out.println("<P>You don't like ice cream ?</P>"); } %> <P>At the weekend you like to do the following</P> <% if(strWeekend!=null) { out.println("<UL>"); for(int i=0; i < strWeekend.length; i++) { out.println("<LI>" + strWeekend[i]); } out.println("</UL>"); } else { out.println("<P>You don't get up to much at the weekend!</P>"); } %> <HR> <p><a href="ShowSource.jsp?File=request.jsp" title="Click here to see the source JSP code"> <img src="code.gif" alt="Source code icon" title="Click here to see the source JSP code"></a></p> </body> </html>

Source Code untuk makeCookie.jsp:

<%-Solusi workshop modul-10 --%> <% String strMsg; String strCookieName = request.getParameter("CookieName"); String strCookieValue = request.getParameter("CookieValue"); if((strCookieName!=null)&&(!strCookieName.equals(""))) { if((strCookieValue!=null)&&(!strCookieValue.equals(""))) { Cookie c = new Cookie(strCookieName, strCookieValue); response.addCookie(c); strMsg = "Cookie successfully created."; } else { strMsg = "Must provide a cookie value."; } } else { strMsg = "Must provide a cookie name."; } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>JSP Course - Response Workshop</title> </head> <body style="margin: 10px;"> <H2>Response Workshop</H2> <P><%= strMsg %></P> <P>Click back in your browser to view previous form, select refresh and see if your new cookie has indeed been created.</P> <hr>

</body> </html>

Source Code untuk include1.jsp: <%-Solusi workshop modul-11 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>JSP Course - Include Action Workshop</title> </head> <body style="margin: 10px;"> <H2>Include Action Workshop</H2> <P>Your solution to the workshop should look something like this:</P> <HR> <jsp:include page="include2.jsp" flush="true"> <jsp:param name="Name" value="Alastair Gulland"/> </jsp:include> </body> </html>

Source Code untuk forward.jsp:

<%-Solusi workshop modul-12 --%> <% String strWorkshop = request.getParameter("Workshop"); if((strWorkshop!=null)&&(!strWorkshop.equals(""))) { %> <jsp:forward page="<%= strWorkshop %>" /> <% } else { %> <HTML> <BODY> <P>Missing parameter</P> </BODY> </HTML> <% } %>

You might also like