+ All Categories
Home > Documents > Jsp Dan Servlet

Jsp Dan Servlet

Date post: 25-Jun-2015
Category:
Upload: putu16
View: 412 times
Download: 0 times
Share this document with a friend
Popular Tags:
21
JSP dan SERVLET SMK TELKOM SANDHY PUTRA MALANG Jalan Danau Ranau Sawojajar Malang Tahun Pelajaran 2009/2010 SMK TELKOM SP MALANG Tahun Pelajaran 2009/2010 Nama: Herdianto Kelas: 3RPL2 Absen: 32
Transcript
Page 1: Jsp Dan Servlet

JSP dan SERVLETSMK TELKOM SANDHY PUTRA MALANG

Jalan Danau Ranau Sawojajar MalangTahun Pelajaran 2009/2010

SMK TELKOM SP MALANG Tahun Pelajaran 2009/2010

Nama: HerdiantoKelas: 3RPL2

Absen: 32

Page 2: Jsp Dan Servlet

Java Server Pages (JSP)

Pengenalan JSPJava Server Pages (JSP) merupakan perluasan dari spesifikasi Java Servlet, yang

bertujuan untuk menyederhanakan dalam pengembangan suatu content yang dinamis. JSP merupakan bagian dari teknologi J2EE,bersama-sama dengan Servet, EJB, JNDI, XML. JSP dan Servlet bekerja dalam suatu lingkungan web container yang menyediakan koneksi dan service, sedangkan JSP dan Servlet mengontrolpresentasi data yang dihasilkan dari suatu proses untuk dikirimkan ke client.

Server yang menangani permintaan JSP seperti sebuah kompiler halaman yang menggabungkan template HTML dengan kode Java yang dinyatakan pada elemen JSP.

Sebuah JSP ketika akan dijalankan, web container akan memeriksa status class servlet terakhir, jika belum Ada atau berstatus lama, maka container akan melakukan kompilasi terhadap file JSP untuk dihasilkan suatu servlet yang menerapka interface HttpJspPage berdasar isi dari halaman JSP. Dari Servlet inilah kemudian dijalankan method _jspService untuk menghasilkan response dengan menggunakan class HttpServletRequest dan HttpServletResponse.

Untuk dapat menggunakan JSP, terdapat dua package tambahan lain :● package javax.servlet.jsp

berisi kelas-kelas dan method utama JSP● package javax.servlet.jsp.tagtest

berisi kelas-kelas dan method untuk custom tag

2

Page 3: Jsp Dan Servlet

Apache Tomcat Web ServerSeperti halnya skrip-skrip server side yang lain, JSP pun memerlukan Web

Server. Skrip ASP memerlukan IIS sebagai web server, PHP memerlukan IIS atau Apache sedangkan JSP bisa menggunakan Apache Tomcat sebagai salah satu web server yang mendukungnya.

Installasi Apache TomcatPaket yang diperlukan untuk proses installasi adalah :

Java 2 Software Development Kit (J2SDK) (http://java.sun.com/j2se/) Apache Tomcat (http://jakarta.apache.org)

Langkah atau urutan installasi : install J2SDK install Apache Tomcat

Setelah melewati tahapan installasi di atas maka untuk mencoba maka tahapan yang dilakukan adalah :

Start Tomcat (pada sistem operasi MS Windows, pilih Start | Program | Apache Tomcat | Start Tomcat).

Buka web browser, kemudian ketikkan URL berikut http://localhost:8080. Hasilnya bisa dilihat pada gambar berikut.

KonfigurasiFile konfigurasi Apache Tomcat ada 3 yaitu :

server.xml, setting konfigurasi server seperti port atau direktori yang digunakan.

users.xml atau tomcat-users.zml, menyimpan user dan password pada server. Selain itu juga menentukan hak akses dari user.

web.xml, setting konfigurasi untuk setiap aplikasi web.

3

Page 4: Jsp Dan Servlet

Secara default “direktori kerja utama" adalah <TOMCAT-HOME>/webapps/ROOT. Apabila user ingin mendeklarasikan direktori misalnya pada D:\Dokumen\Web\JSP sebagai "direktori kerja utama" maka yang perlu dilakuka adalah memodifikasi file server.xml pada bagian:

<!-- Tomcat Root Context --><!-- Tomcat Root Context --><Context path="" docBase="ROOT" debug="0"/><Context path="" docBase="ROOT" debug="0"/>

menjadi :<!-- Tomcat Root Context --><!-- Tomcat Root Context --><Context path="" docBase="D:\Dokumen\Web\JSP" debug="0"/><Context path="" docBase="D:\Dokumen\Web\JSP" debug="0"/>

apabila kita ingin mengakses suatu direktori kerja C:\app\JSP dengan URL sebagai berikut http://localhost:8080/jsp/ maka pada server.xml bisa disetting seperti berikut :

<!-- Tomcat Examples Context --><!-- Tomcat Examples Context --><Context path="/jsp" docBase="C:\app\JSP\" debug="0" reloadable="true"/><Context path="/jsp" docBase="C:\app\JSP\" debug="0" reloadable="true"/>

Selain dengan cara di atas, untuk melakukan konfigurasi “direktori kerja” dan URL yang diinginkan bisa digunakan fasilitas yang diberikan oleh Apache Tomcat 4.1 yaitu Manger. Untuk mengaksesnya dapat digunakan URL sebagai berikut:

http://localhost:8080/manager/html.Maka akan dimunculkan tampilan sebagai berikut :

4

Page 5: Jsp Dan Servlet

Untuk mengetahui user apa yang bisa mengakses direktori manager dan password dari user tersebut bisa dilihat daftar user pada file users.xml atau tomcat-users.xml. Sebagai contoh isi file tersebut adalah:

<?xml version='1.0' encoding='utf-8'?><?xml version='1.0' encoding='utf-8'?><tomcat-users><tomcat-users> <role rolename="tomcat"/> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="manager"/> <role rolename="admin"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="admin" roles="admin,manager"/> <user username="admin" password="admin" roles="admin,manager"/></tomcat-users></tomcat-users>

Pada baris berikut dapat diketahui bahwa user admin dengan password admin dapat mengakses manager.

<user username="admin" password="admin" roles="admin,manager"/><user username="admin" password="admin" roles="admin,manager"/>

Dan berikut adalah tampilan dari URL http://localhost:8080/manger/html

Pada halaman di atas bisa dilihat “direktori kerja” yang telah dibuat, serta fasilitas untuk Stop, Reload dan Remove. Perintah Reload biasanya digunakan untuk me-refresh Servlet yang baru dimodifikasi, karana untuk melihat perubahan dari modifikasi sebuah Servlet tidak bisa dilakukan dengan cara me-refresh web browser.

5

Page 6: Jsp Dan Servlet

JSP merupakan bahasa pemrograman web dimana penulisannya menggunakan tag-tag yang memiliki aturan penulisan sama dengan XML. Penulisan program JSP menggunakan tag-tag yang disebut skriplet. Saat pertama kali file JSP dipanggil maka JSP akan dikompilasi menjadi Servlet yang kemudian disimpan di memori server sehingga proses pada pemanggilan berikutnya dapat berlangsung lebih cepat.

Tag asli JSP pada dokumen HTML

Tag Fungsi Contoh<%-- --%> Komentar <%-- ini komentar --%><%= %> Ekspresi (sebagai String) <%= new java.util.Date()%><%! %> Deklarasi <%! Date d = new Date();%><% %> Fragmen Kode Program <%

for (int i=0;i<10;i++)%>

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

Objek ImplisitSetiap halaman JSP berisi variabel penunjuk ke objek servlet yang disebut objek

implisit yang sudah terdefinisikan dan siap digunakan. Variabel ini memiliki ruang lingkup :

Lingkup KeteranganApplication - Dimiliki oleh container JSP

- dapat dimanipulasi oleh sembarang Servlet atau aplikasi

Page - Ada pada halaman yang mendefinisikan- Instance individu untuk tiap halaman

Request - ada selama waktu RequestSession - ada untuk selama session client

Objek implisit yang disediakanNama Tipe Fungsi

Applicationapplication javax.servlet.ServletContext Berisi atribut seluruh

aplikasiPageconfig javax.servlet.ServletConfig Sebagai Objek representasi

dari konfigurasi JSP yangtersimpan pada WebDescriptor (web.xml)

exception ava.lang.Throwable Sebagai directive untukhalaman error

out javax.servlet.jsp.JspWriter Output stream untukresponse

response javax.servlet.ServletRequest Membuat output responsepages java.lang.Object Sebagai this untuk

6

Page 7: Jsp Dan Servlet

menunjuk ke halamannya sendiri

pageContext javax.servlet.jsp.PageContext Berisi atribut halamanRequest

request javax.servlet.ServletRequest Wakil dari Request userSessionsession javax.servlet.http.HttpSession Berisi variabel yang

disertakan pada session user

Contoh penggunaan objek implisit:<%@page contentType="text/html"%><html>

<head><title>Objek Implisit</title></head><BODY><H2>Mencoba Objek Implisit</H2><UL>

<LI>Waktu saat ini: <%= new java.util.Date() %><LI>Server: <%= application.getServerInfo() %><LI>Session ID: <%= session.getId() %><LI>Nilai parameter <CODE>Nama</CODE> :<%= request.getParameter("Nama") %>

</UL></BODY>

</HTML>

DirectiveMendefinisikan atribut yang digunakan oleh seluruh halaman JSP.

Contohpemakaiannya :<%@ page language=”java” import=”java.util.*, java.io.*” %>

Beberapa atribut directive page :

Atribut Keteranganlanguage Mendefinisikan bahasa yang digunakan pada code fragmenextends Mendefinisikan kelas induk dari servlet yang dihasilkanimport Mendefinisikan daftar kelas-kelas yang diimport session

Menentukan apakah sebuah objek session harus didefinisikansession Menentukan apakah sebuah objek session harus didefinisikanbuffer Mengontrol ukuran buffer keluaran responseautoFlush Jika 'false', jika terjadi buffer overflow akan muncul exception,

jika 'true', buffer akan diflush ke stream outputisThreadSafe Jika 'false', container JSP hanya mengerjakan 1 request

7

Page 8: Jsp Dan Servlet

info Mendefinisikan suatu String yang dapat dipanggil dengan method getServletInfo()

errorPage Mendefinisikan URL yang akan dikirimi sembarang objekException atau Error

isErrorPage Jika 'true', page aktif adalah error page jugacontentType Mendefinisikan nilai tipe header MIME

Tag-tag kompatibel dengan XMLTag-tag asli JSP dapat dituliskan dengan bentuk elemen XML, yang

menggunakan namespace “jsp:” untuk tiap elemennya.

Berikut adalah persamaan tag JSP dengan XML :

Tag JSP XML Tag Contoh<%= %> <jsp:expression> <jsp:expression></jsp:expression><%! %> <jsp:declaration> <jsp:declaration>String ver=”v1.0”

</jsp:declaration><% %> <jsp:scriptlet> <jsp:scriptlet>

for(int i=0;i<10;i++)</jsp:scriptlet>

<%@ %> <jsp:directive/> <jsp:directive.page language=”java”/><jsp:include/> <jsp:include page=”copy.html”/><jsp:forward/> <jsp:forward page=”url.html” /><jsp:param/> <jsp:param name=”nm” value=”xxx”/><jsp:getProperty/> <jsp:getProperty name=”nmBean”

property=”nmProp”/><jsp:setProperty/> <jsp:setProperty name=”nmBean”

property=”nmProp” value=”xxxx”/><jsp:useBean/> <jsp:useBean id=”nmBean”

scope=”request” class=”classBean”/><jsp:plugin/> <jsp:plugin type=”applet”

code=”nmApplet” width=”w”height=”h”/>

Terdapat perbedaan jika Anda menggunakan <%@ include file=”url” %> dengan <jsp:include page=”url” />, antara lain :untuk tag <%@ include file=”url” %> :● file dibaca dan disisipkan pada halaman JSP sebelum halamanditerjemahkan● file dapat berisi JSPuntuk tag <jsp:include page=”url” /> :● hasil dari url di sisipkan ke dalam halaman JSP pada saat request● file yang diinclude tidak dapat berisi JSP

8

Page 9: Jsp Dan Servlet

SERVLET

Definisi ServletServlet 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.

Method Dalam ServletJava 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 Keteranganvoid 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 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 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

9

Page 10: Jsp Dan Servlet

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, yaitu HttpServletRequest dan HttpServletResponse.

Beberapa method yang berasal dari ServletRequest adalah sebagai berikut :

Method KeteranganString getParameter(String name)

Dikirim ke servlet sebagai bagian request GET atau POST.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.

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.*; public class HTTPGetServlet extends HttpServlet {

10

Page 11: Jsp Dan Servlet

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

Dilakukan dengan memasukan alamat URL pada browser sebagai berikut :

11

Page 12: Jsp Dan Servlet

http://localhost:8080/server2/HTTPGetServlet.html

Tampilan HTTPGetServlet.html pada Browser

Jika button Submit ditekan, maka servlet akan mengembalikan HTML seperti yang terlihat pada

browser sebagai berikut :

Servlet yang Menangani Request HTTP Get

Menangani Request HTTP POSTRequest 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.

12

Page 13: Jsp Dan Servlet

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 javax.servlet.*; import javax.servlet.http.*; import java.text.*; import java.io.*; import 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 ]; } catch( ClassNotFoundException cnfe ) { cnfe.printStackTrace(); } } else bahasa = new int[ 5 ]; // 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 ];

13

Page 14: Jsp Dan Servlet

// menulis update total ke disk ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream( f ) ); 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(); } }

14

Page 15: Jsp Dan Servlet

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> <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

Tampilan HTTPPostServlet.html pada Browser

15

Page 16: Jsp Dan Servlet

Jika tombol submit ditekan, maka servlet akan mengembalikan dokumen HTML sebagai berikut :

Servlet yang Menangani Request HTTP Post

16


Recommended