Java Server Pages
-
Upload
galihsatria -
Category
Technology
-
view
27 -
download
3
description
Transcript of Java Server Pages
Java Server Pages
Galih SatriajiLaboratorium Pemrograman Teknik Informatika ITS14 Mei 2006
http://www.galihsatria.com/
Apa yang Akan Dibahas?
• Struktur File JSP• Scriptlet dalam Sekejap • Struktur Aplikasi JSP• Web Container?• Berkenalan dengan
Lingkungan IDE Oracle JDeveloper
• JavaBean sebagai representasi objek
• JDBC Connection dg MySQL
http://www.galihsatria.com/
Apa yang Akan Dibahas (2)?
• JDBC Connection dg Oracle
• Session Management• Archiving Aplikasi untuk
Deployment (WAR)
Ekstra (kalau mau :p)• Berkenalan dengan
Framework JSP:– Jakarta Struts– Java Server Faces (JSF)
Bagian Pertama
<%Struktur Java Server Pages%>
http://www.galihsatria.com/
Asal Usul JSP
• Java ServletClass Java yang menangani request HTTP bernama javax.servlet.*
• Kelemahan Java Servlet:– Semua ditulis hardcoded murni
bahasa Java. Output HTML merupakan hasil print out ke system console.
– Misalnya:PrinterWriter.println( “<html></html>” );
http://www.galihsatria.com/
Asal Usul JSP (2)
• Akibatnya, pemrograman servlet tidak bisa langsung dilihat pada saat design time, dan tidak dapat menggunakan WYSIWYG editor seperti Macromedia Dreamweaver
• Solusi? JSP Java Server Pages• JSP dapat disisipkan pada kode
HTML seperti layaknya ASP atau PHP Scriptlet
Lihat Contoh file JSP
http://www.galihsatria.com/
Pemrosesan JSP di server
File JSP
pertama?
Servlet
HTML
Server
Client
Kompilasi
request file JSP
Mencari file JSPApakah file ini sudah dikompilasi menjadiServlet?
belum sudah
Servlet bekerja dan menghasilkanoutput HTML
HTML selesai diprosesHasil dikirim ke Client sebagairespon
http://www.galihsatria.com/
Pemrosesan File JSP
• Catatan:– Setiap file JSP akan dikompilasi
menjadi servlet sekali, hanya pada saat file JSP diakses pertama kali, untuk request selanjutnya, file JSP tidak akan dikompilasi lagi, tetapi langsung servlet dieksekusi.
– Pada kode-kode yang embedded dengan HTML, semua kode HTML di luar direktif <% dan %> akan dikonversi menjadi pernyataan out.println().
http://www.galihsatria.com/
Gaya Penulisan JSP
• Scriptlet.Penulisan JSP disisipkan pada file HTML. Baik bussiness logic dan presentation ditulis dalam satu file HTML.Kelemahan:– Desain yang paling buruk– Tidak mencerminkan paradigma
berorientasi objek, padahal Java sangatlah OOP
– Sulit dalam maintenance karena bussiness logic dan presentation digabung jadi satu
http://www.galihsatria.com/
Gaya Penulisan JSP (2)
• Bussiness Logic dan Presentation terpisahBussiness Logic (contoh: akses database) ditulis dalam class terpisah dan menjadi library aplikasi. Kode-kode presentasi ditulis embedded di HTML dengan memanggil class-class bussiness logic.
http://www.galihsatria.com/
Gaya Penulisan JSP (3)
Keuntungan:– Mudah dalam maintenance
karena bussiness logic dan presentation terpisah.
– Berorientasi objek– Class bussiness logic dapat
dijalankan secara terpisah tanpa melalui web (misalnya dijalankan di console)
http://www.galihsatria.com/
Gaya Penulisan JSP (4)
• Let’s do it babeh!!! Buka Oracle JDeveloper!!
• Buat bilangan fibonacci dengan servlet
• Buat scriptlet bilangan fibonacci.
• Buat bilangan fibonacci secara terpisah di library tersendiri
http://www.galihsatria.com/
WebContainer• Server yang bisa menangani
servlet/JSP dinamakan web container. Contoh: Apache Tomcat, Oracle webContainer for Java (OC4J).
• Server yang didalamnya terdapat fitur-fitur yang menangani Java Enterprise (J2EE) dinamakan application server. Contoh: JBoss, Oracle AppServer, BEA Weblogic, IBM Websphere, dan Sun AppServer
http://www.galihsatria.com/
Web Container (2)
• Dalam appserver, bisa jadi terdapat web container, misalnya:– JBoss memiliki Tomcat– Oracle AppServer terdapat
OC4J
Bagian Kedua
<%JavaBean Sebagai Representasi Objek%>
http://www.galihsatria.com/
Apa sih JavaBean Itu?
• Tidak ada yang istimewa, JavaBean hanyalah public class dengan field private yang harus memiliki salah satu method getter dan setter ataupun kedua-duanya.
• Contoh class JavaBean, jelaskan ciri-nya!
http://www.galihsatria.com/
Objek yang Sesungguhnya!
• Diagram lagee• Bagaimana fibonacci tadi
menjadi JavaBean?
Bagian Ketiga
Java Database Connectivity (JDBC)
http://www.galihsatria.com/
Gambaran Besar
• Siapkan driver JDBC untuk database spesifik, misal:– JDBC-ODBC Driver– MySQL JDBC (ConnectorJ)– Oracle JDBC
• Jadikan driver JDBC (biasanya berbentuk file JAR) menjadi library CLASSPATH
http://www.galihsatria.com/
Gambaran Besar (2)
• Register driver dengan Class.forName atau DriverManager.registerDriver
• Buat objek Connection• Buat objek Statement• Execute query SQL dan
dapatkan object ResultSet• Dari objek ResultSet, iterasi
objek dan dapatkan data perbaris
http://www.galihsatria.com/
JDBC Dengan JavaBean
• Pada BussinessLogic:– Setelah dapat objek
ResultSet, iterasi baris dan masukkan ke JavaBean
– Masukkan masing-masing JavaBean ke objek List/ArrayList
http://www.galihsatria.com/
JDBC Dengan JavaBean (2)
• Pada presentasi:– Inisialiasasi class JavaBean
dengan direktif <@page useBean/> dan class pendukung lainnya (termasuk data access) dengan operator new
http://www.galihsatria.com/
JDBC Dengan JavaBean (3)
• Pada presentasi:– Dapatkan ArrayList dari
method class data access, iterasi dan tampilkan data
– Dengan demikian, JavaBean hanya berperan sebagai pembawa data saja
http://www.galihsatria.com/
Let’s Do It Babeh!!!!
• Objek database: data diri mahasiswa
• Buat JDBC Connection ke MySQL
• Buat JDBC Connection ke Oracle
Bagian Keempat
Deployment Aplikasi JSP
http://www.galihsatria.com/
Konsep (yg membosankan :p)
• Aplikasi Java Enterprise dibundel dalam satu file WAR (Web Archive) untuk aplikasi web atau EAR (Enterprise Archive) untuk aplikasi enterprise.
• File ini adalah file ZIP biasa dengan beberapa keistimewaan
http://www.galihsatria.com/
File WAR (Web Archive)• Terdapat directory khusus
bernama WEB-INF yang harus berisi web.xml, file XML yang menyimpan setting konfigurasi spesifik untuk aplikasi ini. Analogi di Apache adalah file .htaccess
• Directory WEB-INF/lib berisi semua class-class tambahan yang diperlukan aplikasi agar bisa berjalan (JavaBean, DataAccess, JDBC Driver dll)
http://www.galihsatria.com/
File WAR (Web Archive) (2)
• WEB-INF/lib adalah CLASSPATH untuk aplikasi web, jadi taruh semua class, baik yang dibundel dalam file JAR atau tidak sesuai dengan hierarki package yang dimiliki
http://www.galihsatria.com/
Let’s go!
• Bagaimana mudahnya membuat file WAR di JDeveloper
• Bagaimana mudahnya melakukan deployment di JDeveloper