어서 오십시요 SELAMAT DATANG

Senin, 05 Juni 2017

Ringkasan Materi Java Servlet


By : Desi Rima Melany-12141365

JAVA SERVLET

 Pengertian Java Servlet
Java Servlet merupakan satu teknologi web untuk Java. Servlet adalah teknologi web pertama yang diterapkan pada pemrograman Java. Servlet merupakan bagian dari pemrograman Java digunakan untuk memperluas kemampuan server. Java Servlet dapat menanggapi setiap jenis permintaan, biasanya digunakan untuk memperpanjang aplikasi host oleh server web. Aplikasi yang berjalan dengan menggunakan Java Servlet dapat dianggap sebagai aplikasi Java yang berjalan di server bukan di web browser sebagai Server Side Application. Java Servlet adalah bagian dari Java Enterprice Edition (Java EE).
Servlet adalah teknologi Java untuk aplikasi web berupa class yang digunakan untuk menerima request dan memberi respon melalui protokol http (html, xml, file dan sebagainya). Pada dasarnya Servlet merupakan file java class yang telah dikompilasi dan dijalankan oleh servlet container atau application server. Istilah application server digunakan apabila software server dapat menjalankan servlet, JSP serta teknologi J2EE utama seperti EJB (Enterprise Java Bean). Contoh Application Servlet adalah BEA Web Logic, IBM Websphere, Jboss, dsb. Servlet container biasanya juga merupakan JSP container, seperti Apache Tomcat, Macromedia Jrun, Resin.
Java Servlet adalah komponen berbasis java yang digunakan untuk berkomunikasi dengan web server dengan model pemrograman request-response. Servlet merupakan komponen yang sangat fundamental dalam teknologi java enterprise. tujuan utama spesifikasi servlet adalah menyediakan menyediakan mekanismeyang andal untuk menangani request dan respons dalam aplikasi berbasis web. Dalam desain pattern Model View Controller (MVC), servlet dapat digunakan sebagai komponen view ataupun controller. Akan tetapi, biasanya servlet lebih sering digunakan sebagai controller, sedangkan untuk view diserahkan kepada komponen lain seperti JSP ataupun JSF. Untuk dapat menguji servlet, memerlukan servlet container yaitu apache tomcat 6.

Fungsi Java Servlet
Servlet itu berfungsi untuk memperluas fungsionalitas sebuah server (server web, server aplikasi, server HTTP). Servlet adalah program Java yang diintegrasikan di dalam Web-server untuk melakukan fungsi-fungsi server-side. Fungsi server-side ini dijalankan untuk menanggapi permintaan dari client (berupa web-browser).
Server yang dapat menjalankan servlet disebut servlet-container atau servlet-engine.
Dalam Java Servlet API yang tersedia bisa memakai servlet generik, atau umumnya dalam praktik menggunakan servlet yang berkomunikasi memakai protokol HTTP (HttpServlet).
Setelah menerima permintaan, servlet akan mengolah permintaan tersebut pada server-side. Hasilnya (response) akan dikirim kepada client, yaitu content yang biasanya berupa halaman web (umumnya mengikuti format stander HTML, XHTML, atau XML), dengan demikian servlet mampu memperluas fungsi server yang outputnya statis menjadi server yang outputnya dapat berupa content dinamis. Jadi content akan dibuat on-the-fly (atau on_demand) berdasarkan permintaan dari client.

Kelebihan Java Servlet
  1. Efisien dan baik dalam Performance. Performance Servlet baik karena tidak ada proses pembuatan berulang untuk tiap request dari client. Jadi tiap request ditangani oleh proses servlet container di mana servlet tidak dibuat dan dihancurkan berulang-ulang tetapi tetap tersimpan pada memori untuk menangani request lain yang datang selanjutnya.
  2. Powerful. Servlet memiliki kemampuan yang lengkap, antara lain penanganan request ke request, penanganan cookie dan session, akses database dengan JDBC, caching serta library yang lengkap untuk pembuatan aplikasi web.
  3.  Aman. Servlet memiliki fasilitas security yang baik dan merupakan bagian dari teknologi Java yang sudah dari asalnya didesain dengan security yang baik.
  4. Portabilitas. Teknologi Java Servlet portabel karena dapat dijalankan di berbagai servlet container, application server, maupun sistem operasi.
  5. Proses development yang lebih cepat. Dengan menggunakan Servlet kita dapat menggunakan library java yang lengkap maupun menggunakan komponen atau bean yang sudah ada.
  6. Robustness. Tangguh karena servlet merupakan teknologi java yang memiliki penanganan memori yang baik serta garbage collection sehingga aplikasi web menjadi aplikasi yang tangguh dan stabil.
  7. Telah digunakan dan diakui di dunia. Servlet merupakan teknologi Java yang telah diterima dan digunakan di berbagai belahan dunia. Maka kita dapat menemukan berbagai komponen, solusi, dukungan yang ditawarkan.
  8. Murah. Murah karena Java gratis untuk didownload, Servlet container juga banyak yang gratis.
Cara Kerja Java Servlet
  1. Servlet diload ke JVM oleh Servlet container apabila terjadi request pertama kali oleh client.
  2. Proses penanganan request dijalankan sebagai thread dari web server atau servlet container. Setelah diload maka servlet tetap ada di memori untuk menangani request berikutnya.
  3. Tiap kali menangani request, servlet container membandingkan timestamp dari servlet dalam memori dengan file class java servlet. Apabila timestamp file java servlet ada yang lebih baru maka secara otomatis servlet container akan meload servlet yang baru dari class servlet.
Secara umum, cara kerja servlet adalah menerima request kemudian mengirim response. Client(browser) mengirimkan HTTP request pada servlet container. Kemudian servlet container akan menghantarkna request ke server yang dimaksud. Servlet akan menjalankan program java. Dan jika diperlukan bisa mengakses database atau lainnya untuk menghasilakn output berupa HTML. Halaman HTML ini diserahkan ke servlet container untuk dikirimkan kembali sebagai response kepada client. Sebagai ilustrasi diberikan pada gambar sebagai berikut :
Gambar Cara Kerja Java Servlet
Siklus hidup servlet dalam suatu servlet container dibagi menjadi tiga fase, yaitu :
  1. Initialization hanya bekerja sekali, sedangkan fase service dapat dijalankan beberapa kali. Initialization merupakan fase pertama yang dipekerjakan dan yang merupakan proses pembuatan instance dan mengambil semua sumber daya yang diperlukan oleh servlet tersebut. Semua kelas servlet harus mengimplementasikan interface javac.servlet.servlet yang didalamnya terdapat method init() yang akan dipanggil oleh container pertama kali ketika servlet dipanggil.
  2. Face service dalam siklus hidup sehat servlet mempresentasikan semua interaksi denga request sampai servlet tersebut dihapus pada fase destruction. Seperti juga method init() yang terdapat dalam interface servlet, method service() juga terdapat dalam interface servlet. Method service() akan dipanggil tiap kali ada request dan bertanggung jawab memberikan response dari request tersebut. Method service() bekerja dengan dua parameter, yaitu obyek javax.servlet.servletrequest dan javax.servlet.servletresponse.
  3. Fase terakhir dalam hidup Java Servlet yaitu destruction. Dalam fase ini, instance servlet akan dihapus dan sumber daya yang digunakan akan dibebaskan. Method yang didefinisikan oleh interface servlet untuk menangani proses penghapusan ini adalah destroy().
Studi Kasus Sederhana
// Hello.java
import java.io.*;
import javax.servlet.*;
public class Hello extends GenericServlet {
    public void service(final ServletRequest request, final ServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html");
        final PrintWriter pw = response.getWriter();
        try { pw.println("Hello, world!");
        } finally { pw.close(); }  }  }

Paket impor mengarahkan compiler Java untuk menyertakan semua kelas masyarakat dan interface dari java.io dan paket javax.servlet di kompilasi.
Kelas Hello memperluas kelas GenericServlet, kelas GenericServlet menyediakan antarmuka untuk server untuk meneruskan permintaan ke servlet dan mengendalikan siklus hidup servlet.
Kelas Hello menimpa layanan (ServletRequest, ServletResponse) metode yang didefinisikan oleh interface Servlet untuk memberikan kode untuk penangan permintaan layanan. Layanan () metode dilewatkan: objek ServletRequest yang berisi permintaan dari klien dan objek ServletResponse digunakan untuk membuat respon kembali ke klien. Layanan () metode menyatakan bahwa ia melempar pengecualian ServletException dan IOException jika masalah mencegah dari menanggapi permintaan tersebut.
The setContentType (String) metode dalam objek respon dipanggil untuk mengatur jenis konten MIME dari data kembali ke "text / html". The getWriter () metode dalam penanggulangan mengembalikan sebuah obyek PrintWriter yang digunakan untuk menulis data yang dikirim ke klien. The println (String) metode ini disebut untuk menulis "Halo, dunia!" string ke respon dan kemudian tutup () metode ini disebut untuk menutup penulis cetak, yang menyebabkan data yang telah ditulis ke aliran dikembalikan ke klien.

Ringkasan Materi JSP (Java Server Pages)


By : Desi Rima Melany-12141365

JSP (JAVA SERVER PAGES)

 Pengertian JSP (Java Server Pages)
JSP (Java Server Pages) adalah bahasa scripting untuk web programming yang bersifat server side seperti halnya PHP dan ASP. JSP dapat berupa gabungan antara baris html dan fungsi-fungsi dari JSP itu sendiri. Berbeda dengan Servlet yang harus dikompilasi oleh user menjadi class sebelum dijalankan, JSP tidak perlu dikompilasi oleh user tapi server yang melakukan tugas tersebut. Teknologi JSP menyediakan cara yang lebih mudah dan cepat dalam membuat halaman-halaman web yang menampilkan isi secara dinamik dan bekerja dengan berbagai macam web server, application server, browser dan development tool.
JSP memungkinkan untuk menggabungkan static HTML dengan dynamic content yang dihasilkan dari Servlet. JSP juga merupakan bagian dari teknologi J2EE (Java 2 Enterprise Edition). J2EE merupakan platform Java untuk pengembangan aplikasi enterprise dengan dukungan API (Application Program Interface) yang lengkap dan portabilitas serta memberikan sarana untuk membuat aplikasi multi tier yang memisahkan antara Presentation layer, Application layer dan Data Layer.
JSP pada dasarnya juga halaman HTML dengan tambahan tag-tag JSP yang berupa Java Code. File JSP mempunyai extension .JSP bukan .htm atau html. JSP engine (Java virtual mechine) melakukan proses parsing pada file .JSP selanjutnya men-generate Java servlet source file. Kemudian mengkompilasi source file ini menjadi class file, hal ini dilakukan pada saat pertama kali file .JSP dijalankan. Hal ini yang membuat lebih lambat ketika .JSP file pertama kali diakses, selanjutnya setelah servlet source file terkompile semuanya berjalan lebih cepat.
Kelebihan JSP
1.      JSP dapat berjalan pada sembarang platform.
2.      JSP cenderung memiliki performansi yang lebih baik, karena JSP dilakukan kompile terlebih dahulu menjadi servlet yang berupa bytecode.
3.      Didukung bahasa Java yang memilki kemampuan OOP dan tingkat reuseability tinggi.
4.      Dapat menggunakan JavaBean untuk mengenkapsulasi kode-kode java.
Elemen-Elemen JSP
Struktur halaman JSP adalah penambahan program Java dalam tag <% %> pada suatu halaman HTML untuk membangkitkan content yang bersifat dinamik.
JSP memiliki tiga komponen utama, yaitu :
1.      Directives : merupakan suatu petunjuk bagi web container tentang sesuatu yang harus dilakukan pada saat container melakukan compile halaman JSP.
Sintaks : <%@ namaDirective attribute1=”value1” attribute2 =”value2” %>
Directives terdiri dari tiga bagian, yaitu :
a.       Page Directive
Untuk menentukan dan memanipulasi atribut-atribut pada halaman JSP serta memberikan informasi ke container untuk atribut-atribut yang memerlukan proses tertentu. Sintaks : <%@ page ATTRIBUTE %>
Attribute yang digunakan pada Page Directive adalah sebagai berikut :
Attribute
Keterangan
Default Nilai
Language
Menentukan bahasa pemrograman yang digunakan
“Java”
Extends
Digunakan untuk men-generate superclass
Tidak ada
Import
Mengimport package atau class java, seperti halnya pada program Java
Tidak ada
Session
Menentukan apakah halaman JSP menggunakan HTTP session
“true”
Buffer
Menentukan model buffering untuk output stream ke client

autoFlush
Melakukan reset isi buffer jika sudah penuh
“true”
isThreadSafe
Mendefinisikan tingkat keamanan mengenai masalah threading halaman JSP. Jika “false” request akan diproses sebagai single Thread, berurutan sesuai urutan kedatangan request
“true”
Info
Mendefinisikan string informasi yang dapat diperoleh dari implementasi metode Servlet.getServletInfo()
Tidak ada
errorPage
Menentukan error page, sehingga jika terjadi error, maka halaman JSP ini akan ditampilkan
Tidak ada
isErrorPage
Memberikan indikasi apakah halaman JSP merupakan halaman error dari halaman JSP yang lain
“false”
contentType
Menentukan encoding karakter pada JSP dan tipe MIME untuk respons yang dihasilkan JSP.
MIME-TYPE text / html CHARSET ISO-8859-1
Contoh : <%@ page language=”Java” import="java.sql.*“ session=”true” buffer=”12kb” autoFlush=”true” errorPage=”myError.JSP” %>
b.      Include Directive
Untuk menyisipkan isi file lain ke dalam file JSP.
Sintaks : <% include file=”namaFile” %>
Contoh : <% include file=”myHeader.html” %>
c.       Taglib Directive
Untuk penggunaan tag library atau tag tambahan.
Contoh : <%@ taglib url=http://Latihan.com/tagKu prefix=”test” /> …
2.      Scripting Elements : tag untuk menuliskan program Java.
Terdiri dari tiga elemen, yaitu :
a.       Declarations
Merupakan blok program Java yang digunakan untuk mendeklarasikan variable dan method yang akan digunakan dalam program. Variable yang dideklarasikan pada bagian ini akan berperan sebagai variable global pada servlet hasil kompile.
Sintaks : <%! Deklarasi variable dan method %>
Contoh : <%! int i = 10 ; double x = 5.0 ; %>
b.      Scriptlets
Merupakan blok program Java yang dieksekusi pada saat pemrosesan request. Scriptlets akan dijalankan sesuai dengan instruksi program yang diberikan.
Sintaks : <% Sintaks Program Java %>
Contoh : <% System.out.println(“Test Scriptlets”); %>
c.       Expression
Expression merupakan cara untuk memperpendek penulisan scriptlets dan akan mengembalikan nilai String yang dikirim melalui output stream.
Sintaks : <%= Ekspresi Java %>
Contoh : <% String oAnalisa=oAnalisaReview.getAnalisa(oIDK); %>
3.      Action : special tag yang memberikan pengaruh pada halaman JSP pada saat runtime.
JSP mengenal tag action standar dan custom tag. Tag standar adalah tag yang didefinisikan dalam spesifikasi JSP, sedangkan custom tag adalah tag baru yang dapat didefinisikan sendiri. Tag action standar JSP adalah sebagai berikut :
a.       <JSP:useBean>
b.      <JSP:setProperty>
c.       <JSP:getProperty>
d.      <JSP:param>
e.       <JSP:include>
f.       <JSP:forward>
g.      <JSP:plugin>
Action tag ini berfungsi untuk meng-instantiate suatu Java Object (Java Bean) agar dapat digunakan pada halaman JSP. Penggunaan bean ini merupakan salah satu cara untuk memisahkan antara logic dan presentation pada JSP. Logic yang digunakan pada JSP dapat diletakkan pada suatu bean, dan bean ini dapat digunakan untuk halaman JSP yang lain.
Arsitektur JSP
Pemakai yang ingin mengakses halaman Web mula-mula mengirimkan permintaan halaman Web melalui protokol HTTP (HyperText Transfer Protocol) dalam bentuk JSP (berekstensi .JSP). Permintaan ini akan disampaikan ke Web server. Kemudian Web server mengambil dokumen JSP dan mengirimkan ke JSP Servlet Engine.
Gambar Arsitektur JSP
Bagian inilah yang melakukan pemrosesan kode-kode JSP (termasuk di dalamnya melakukan pengompilasian) dan membentuk kode HTML. Berikutnya, kode HTML ini disampaikan oleh Web server ke klien yang memintanya. Kode HTML ini selanjutnya diproses oleh browser sehingga pemakai bisa memperoleh informasi dari halaman Web yang dikehendakinya.
Detail pemrosesan oleh JSP Servlet engine adalah sebagai berikut:
1.      Melakukan pemilahan (parsing) kode JSP,
2.      Membangkitkan kode sumber Servlet,
3.      Mengkompilasi kode sumber Servlet menjadi sebuah kelas,
4.      Membuat instan servlet,
5.      Memberikan keluaran servlet ke Web server
Cara Kerja JSP
JSP bertujuan untuk menyederhanakan pembuatan dan manajemen halaman web yang bersifat dinamis, dengan cara memisahkan content dan presentasi. JSP merupakan halaman yang menggabungkan HTML dengan scripting tag dan program java. Pada saat JSP dipanggil client melalui browser, JSP tersebut akan di kompile terlebih dahulu menjadi servlet, dan kemudian hasilnya dikembalikan ke client. Sebagai ilustrasi diberikan pada gambar sebagai berikut :
Gambar Pemrosesan Halaman JSP
========================================================================

PERBEDAAN ANTARA JSP DAN SERVLET

Servlet itu berfungsi untuk memperluas fungsionalitas sebuah server (server web, server aplikasi, server HTTP). Servlet adalah program Java yang diintegrasikan di dalam Web-server untuk melakukan fungsi-fungsi server-side. Fungsi server-side ini dijalankan untuk menanggapi permintaan dari client (berupa web-browser).
JSP merupakan perluasan dari servlet dan memiliki beberapa keunggulan. Yang pertama adalah bahwa kode yang ditulis untuk JSP relatif lebih ringkas. Yang kedua proses deployment lebih mudah. Sebuah file JSP dapat diperlakukan sama seperti file HTML ketika dilakukan deployment. Tujuan dari JSP adalah untuk lebih menyederhanakan penulisan servlet. JSP sendiri pada akhirnya sebelum dijalankan oleh server, akan dikompilasi terlebih dahulu menjadi servlet, meskipun proses ini tidak akan terlihat.
Perbedaan yang paling besar antara JSP dan Servlet adalah Servlet merupakan merupakan HTML di dalam Java, sedangkan JSP merupakan Java di dalam HTML sehingga memudahkan dalam pembuatan desain tampilan suatu website.
Gambar JSP dan Servlet Dalam Konsep MVC
Jika diterapkan dalam konsep MVC (Model View Controller), yaitu model perancangan aplikasi yang memisahkan antara tampilan (View), Database (Model) dan Logika (Controller), maka JSP itu bertindak sebagai tampilan (View), sedangkan Servlet bertindak sebagai pengatur logic (Controller), dan yang bertindak sebagai representasi database (Model) nya adalah Bean.