slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Teknologi Aplikasi Web III (Servlet, JSP, Javabeans) Husni husni@if.trunojoyo.ac.id PowerPoint Presentation
Download Presentation
Teknologi Aplikasi Web III (Servlet, JSP, Javabeans) Husni husni@if.trunojoyo.ac.id

Loading in 2 Seconds...

play fullscreen
1 / 62

Teknologi Aplikasi Web III (Servlet, JSP, Javabeans) Husni husni@if.trunojoyo.ac.id - PowerPoint PPT Presentation


  • 206 Views
  • Uploaded on

Web Engineering 2010 Pertemuan ke-10. Teknologi Aplikasi Web III (Servlet, JSP, Javabeans) Husni husni@if.trunojoyo.ac.id Husni.trunojoyo.ac.id Komputasi.wordpress.com. Outline. Servlet JSP Java Beans Rangkuman. ServletS. Sekilas Servlet.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Teknologi Aplikasi Web III (Servlet, JSP, Javabeans) Husni husni@if.trunojoyo.ac.id' - chiquita-nunez


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Web Engineering 2010

  • Pertemuan ke-10

Teknologi Aplikasi Web III

(Servlet, JSP, Javabeans)

Husni

husni@if.trunojoyo.ac.id

Husni.trunojoyo.ac.id

Komputasi.wordpress.com

outline
Outline
  • Servlet
  • JSP
  • Java Beans
  • Rangkuman
sekilas servlet
Sekilas Servlet
  • Servletadalah suatu ekstensi terhadap web server yang memberikan fungsionalitas tambahan dan programmability
  • Servletsecara penuh menggunakan platform Java
  • Servletpada dasarnya adalah kelas Java. Setiap servletmeng-extends kelas “javax.servlet.http.HttpServlet”
  • Kelas-kelas terkait dibungkus dalam paket “javax.servlet” dan “javax.servlet.http”
aplikasi web servlet java
Aplikasi Web Servlet Java
  • Siklus hidup pengembangan Servlet
    • Development
      • Mendefinisikan kelas-kelas servlet, metode dan properti di dalamnya
    • Deployment
      • Pemetaan Servletke lingkungan web
      • Deployment pada Web Application Server
    • Execution
      • Memahami siklus hidup eksekusinya
struktur servlet dasar
Struktur ServletDasar

public class HelloWorld extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response )

throws ServletException, java.io.IOException

{ … }

public void doPost(HttpServletRequest request, HttpServletResponse response )

throws ServletException, IOException

{ … }

}

konstruktor dan metode main
Konstruktor dan Metode “Main”
  • Instance servlet instances dibuat (dijalankan) oleh servlet container secara otomatis saat diminta – bukan oleh kelas atau metode pengguna
    • Tidak perlu mendefinisikan konstruktor
  • Titik masuk bukanlag metode “main”, tetapi dua metode
    • Gunakan “doGet” atau “doPost” untuk mengerjakan tugas-tugas
deployment servlet
DeploymentServlet
  • Direktori web content root (public_html)
    • Titik awal dari aplikasi web keseluruhan
    • Semua file dan sub-direktori di sini:html, images, documents …
  • /public_html/WEB-INF/
    • Direktori ini memuat file konfigurasi dan kelas- ter-compile
    • Tidak secara langsung dapat diakses dari web
  • /public_html/WEB-INF/classes/
    • Semua kelas ter-compile (kelas servletdan lainnya) ada dalam direktori ini
pemetaan servlet
Pemetaan Servlet
  • Kelas Servletperlu dipetakan suatu URI yang dapat diakses (accessible, terutama melalui HTTP)
  • Agar nyaman, servletdapat diakses dalam pola umum (invoker servlet)
    • http://[domain]/[context]/servlet/[ServletClassName]
    • http://localhost:8988/servletintro/servlet/SimpleServlet
  • Pemetaan spesifik: menggunakan file konfigurasi “web.xml”
    • Servletdipetakan secara khusus ke suatu URL yang didefinisikan pengguna
konfigurasi web xml
Konfigurasi “web.xml”
  • Menggunakan file“web.xml” untuk

pemetaan lebih spesifik

    • File-file dalam direktori“WEB-INF”
  • Contoh
    • Kelas Servlet
      • HelloWorld.class
    • Konteks aplikasi:
      • http://localhost:8080/servletintro/
    • Pemetaaan kelas Invoker
      • http://localhost:8080/servletintro/servlet/HelloWorld
    • Pemetaan spesifik
      • http://localhost:8080/servletintro/hello
    • Contoh pemetaan lain, lihat “web.xml”

<servlet>

<servlet-name>HelloW</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloW</servlet-name>

<url-pattern>hello</url-pattern>

</servlet-mapping>

siklus hidup eksekusi servlet

doPost()

service()

doGet()

Siklus Hidup Eksekusi Servlet

Servlet Class

First Request

Servlet Instance in Memory

init()

Subsequent

Requests (can be from different users and sessions)

pesan response request
Pesan Response & Request
  • Server dan client web berkomunikasi melalui pesan HTTP (protokol)
    • Pesan request: client  server
    • Pesan response: server  client
  • Pesan HTTP terdiri dari header dan body
    • HTTP header: informasi yang mendeskripsikan pesan dan konsteks dari pesan
    • HTTP body: isi yang biasanya ditampilkan
pemrosesan request
Pemrosesan Request
  • Tipe metode request utama
    • GET
      • Data pengguna dikirim sebagai bagian dari URL request
      • Tidak ada body pesan request
      • Tindakan pemicuan: bar alamat (pada browser), link, form, …
    • POST
      • Data pengguna dikirim dalam body pesan request
      • Tindakan pemicuan: form, …
metode doget
Metode doGet()
  • Kelas Servletmenggunakan metode “doGet()” untuk memroses request URL umum (servlet)

public void doGet( HttpServletRequest request,

HttpServletResponse response )

throws ServletException,IOException{

( generating response message … )

}

pemrosesan response
Pemrosesan Response
  • Response body
    • Pembangkitan HTML atau content lain untuk ditampilkan
  • Response header
    • Pengubahan data header dari pesan response untuk mempengaruhi perilakunya
pembangkitan response content
Pembangkitan Response Content
  • Menggunakan “response” (javax.servlet.http.HttpServletResponse) dan “java.io.PrintWriter” untuk menghasilkan HTML ke stream output

java.io.PrintWriter out = response.getWriter();

out.println(“<html>”);

out.println(“</html>”);

menggunakan stringbuffer
MenggunakanStringBuffer
  • Saat ada perubahan sering terhadap string, penggunakan StringBuffer (java.lang.StringBuffer) lebih efisien

StringBuffer html = new StringBuffer();

html.append(“<html>”);

html.append(“<head>");

String s= html.toString();

  • Ini sangat berguna ketika membangkitkan string-string halaman HTML
penformatan paragraf html
Penformatan Paragraf HTML
  • Menformat kode sumber HTML, atau tampilkan akhir dalam browser?
  • Gunakan karakter escape (/n, /t, ...) untuk menformat sumber kode HTML
  • Gunakan tag-tag HTML untuk men-format luaran akhir dalam browser
    • <p>, <br>, …
pembangkitan html dinamis
Pembangkitan HTML Dinamis
  • Gunakan kemampuan pemrograman Java untuk membangkitkan HTML secara dinamis
    • Content dinamis: date/time, user name, ....
    • Elemen (tag) HTML dinamis
    • Atribut elemen dinamis
    • … (kreatiflah!)
mendapatkan data pengguuna
Mendapatkan Data Pengguuna
  • Dua cara
    • Parameter URL (Get)
      • http:// …/somefile?p1=value1&p2=value2
    • Form HTML (Get atau Post)

User Input

Servlet

URL parameter

Get

doGet

Get

HTML Form

doPost

Post

url dengan parameter
URL Dengan Parameter
  • Data pengguna dapat dikirim dengan request “get”
    • http:// …/somefile?p1=value1&p2=value2
  • Aplikasi
    • Halaman Template bagi detail item data
      • http://www.newegg.com/Product/Product.asp?Item=N82E16827152058
      • http://www2.cis.gsu.edu/cis/people/display.asp?pk=3
    • Pemilihan content halaman
      • http://forum.java.sun.com/category.jspa?categoryID=20
      • http://javaweb.jackzheng.net/cis3270su06/index.jsp?page=schedule
    • Masukan pengguna
      • http://www.google.com/search?q=java
    • Kondisi/konfigurasi
      • http://finance.yahoo.com/q/bc?s=MSFT&t=5d&l=on&z=l&q=l
      • http://msdn.e-academy.com/elms/Storefront/Home.aspx?campus=gsu_cis
    • Tampilan/format halaman, content halaman, pesan error, …
penanganan parameter get
Penanganan Parameter “Get”
  • Dalam “get”HTTP , data pengguna dikirim dengan URL
    • http://…/GetData?p1=value1&p2=value2
  • Menggunakan obyek request (diberikan oleh metode doGet) untuk me-retrieve data ini.
    • String p1=request.getParameter(“p1”);
    • String p2=request.getParameter(“p2”);
    • String p[ ]=request.getParameterValues(“p1”);
  • Catatan: nama parameter bersifat case sensitive
konversi bilangan
Konversi Bilangan
  • Semua nilai parameter bertipe String
    • String p1=request.getParameter(“p1”);
  • Bagaimana jika perlu numerik?
    • Integer.parseInt()
    • Double.parseDouble()
  • Eksepsi konversi harus ditangani
parameter tak reguler
Parameter Tak-reguler
  • Nilai hilang (string kosong dikembalikan)
    • …/GetData?data=
  • Parameter hilang (parameter tak terdefinisi, null)
    • …/GetData?// tak ada parameter
    • …/GetData?data// ”data” masih tak terdefinisi
    • …/GetData?Data=red// case sensitive
  • Blank (kosong)
    • …/GetData?data=hello world
  • Parameter ganda (redundant)
    • …/GetData?data=blue&data=red // Gunakan getParameterValues()
apa itu jsp
Apa Itu JSP
  • Servlets – HTML dalam kode Java
  • JSP – Kode Javadalam HTML

<HTML>

<HEAD>

<TITLE>Java Server Pages</TITLE>

</HEAD>

<BODY>

<H1>JSP</H1>

<%= “Java Server Pages.” %>

<HR>

</BODY>

</HTML>

siklus hidup jsp
Siklus Hidup JSP

JSP to Servlet

Translation

Servlet

Compiled

Servlet

Loaded

jspInit()

called

_jspService()

called

kebutuhan terhadap jsp
Kebutuhan Terhadap JSP
  • Dengan servlet
    • Sulit menuliskan dan merawat HTML
    • Tidak dapat menggunakan tool standard HTML
    • HTML bersifat inaccessiblebagi pengembang non-java
keuntungan jsp
Keuntungan JSP
  • Lebih mudah menuliskan dan merawat HTML
  • Dapat menggunakan tool HTML standar
  • Dapat mudah membagi tim pengembangan
keuntungan
Keuntungan
  • Keuntungan dari Java
  • API Berkembang
  • Mudah dipelajari
  • Komunikasi pengembangan besar
  • Dukungan server dan standardisasi
lokasi halaman jsp
Lokasi Halaman JSP
  • Tak seperti servlet, halaman JSP dapat diletakkan dimanapun file HTML diletakkan, tidak harus di direktori tertentu.
elemen sripting jsp
Elemen Sripting JSP
  • Elemen scripting JSP memungkinkan kita menyisipkan kode Java ke dalam file JSP.
  • Ada 3 jenis elemen
    • Ekspresi<%= Java Expression %>
    • Scriptlet<% Java Code %>
    • Deklarasi<%! Field/Method %>
ekspresi jsp
Ekspresi JSP
  • Ekspresi JSP digunakan untuk menyisipkan kode Java secara langsung ke dalam output.

Sintaks:

<%= Expression %>

Contoh:

Current Time: <%= new java.util.Date() %>

Output:

Current Time: Tue Aug 22 21:05:47 IST 2006

  • Ekspresi dievaluasi, dikonversi ke string dan disisipkan ke dalam halaman.
variabel predefined
Variabel Predefined
  • Agar ekspresi sederhana, JSP menyediakan sejumlah variabel predefined (obyek impllisit).
    • request –HttpServletRequest
    • response –HttpServletResponse
    • session –HttpSession
    • out –Writer (versi ber-buffer dari tipe JspWriter)
    • application – ServletContext
    • config – ServletConfig
    • pageContext – memberikan titik akses tunggal ke atribut halaman
    • page – sinonim bagi “this”
scriptlet jsp
ScriptletJSP
  • Penanganan sesuatu yanglebih sekedar meng-output-kan nilai dari ekspresi sederhana.
  • Memungkinkan programmer menyisipkan kode tertentu ke dalam metode servlets _jspService.

Sintaks:

<% Java Code %>

Contoh:

<%

String str = request.getParameter(“name”);

out.print(“Name : ”+str);

%>

deklarasi jsp
Deklarasi JSP
  • Deklarasi JSP memungkinkan programmer mendefiisikan metode atau field yang dapat disisipkan ke dalam main body dari servlet yang dibangkitkan (diluar metode _jspService())

Sintaks:

<%! Field/Method definition %>

Contoh:

<%!

private String getMessage(){

return “This is a simple message!!”;

}

%>

<%= getMessage() %>

sintaks xml
Sintaks XML
  • Sintaks mirip XML bagi ekspresi, scriptlet dan deklarasi JSP
    • <jsp:expression>…</jsp:expression>
    • <jsp:scriptlet>…</jsp:scriptlet>
    • <jsp:declaration>…</jsp:declaration>
  • Didukung oleh JSP versi 1.2 ke atas
  • Bersifat case sensitive, sebaiknya lowercase
direktif jsp
Direktif JSP
  • Direktif JSP mempengaruhi struktur keseluruhan dari servletyang dihasilkan dari halaman JSP.
  • Direktif JSP berbentuk:
    • <%@ directive attribute=“value” … … %>
  • Ada tiga jenis:
    • page, include & taglib
direktif page jsp
Direktif Page JSP
  • Direktif Page mengontrol struktur dari servlet dengan mengimpor kelas-kelas, meng-custom superclass, mengubah tipe content, dll.
  • Direktif Page JSP mempunyai atribut :
    • import, contentType, pageEncoding, session, isELIgnored, buffer, autoFlush, info, errorPage, isThreadSafe, language & extends
atribut direktif page jsp
Atribut Direktif Page JSP
  • import=“java.util.*, java.sql.*”
  • contentType=“text/html; charset=ISO-8859-1”
  • pageEncoding=“Shift_JIS”
  • session=“true/false”
  • isELIgnored=“false/true”
  • buffer=“size in kb”
  • autoFlush=“true/false”
  • info=“Some info message.”
  • errorPage=“error.jsp”
  • isErrorPage=“false/true”
  • isThreadSafe=“true/false”
  • language=“java”
  • extends=“package.class”
menyertakan file
Menyertakan File
  • Ada tiga cara menyertakan file eksternal ke dalam dokumen JSP.
    • <jsp:include …>…
    • <%@ include …>
    • <jsp:plugin …>…
aksi jsp include
Aksi jsp:include
  • Ini menyertakan output dari halaman sekunder pada waktu halaman utama direquest.
  • Output dari sub-halaman harus berupa HTML yang dibangkitkan oleh servletatau JSP.

<jsp:include page=“/inc/header.jsp” flush=“true” />

<jsp:include page=“/inc/header.jsp” flush=“true”>

<jsp:param name=“paramName” value=“xyz”>

</jsp:include>

direktif include
Direktif Include
  • Direktif ini digunakan untuk menyertakan suatu file ke dalam JSP utama pada waktu translasi ke dalam servlet.
  • Kode dari file yang disertakan ditambahkan ke dokumen JSP.

<%@ include page=“/inc/header.jsp” %>

meneruskan request
Meneruskan Request
  • Aksi ini digunakan untuk mendapatkan output file JSP secara lengkap dari JSP lain atau servlet.
  • Outputdari JSP atau servletpelengkat dikirimkan ke client, bukan bagian dari JSP terkini.

<jsp:forward page=“xyz.jsp” />

aksi jsp plugin
Aksi jsp:plugin
  • Digunakan untuk menempelkan applet Java ke dalam output yang dibangkitkan.
  • Applet Java jarang digunakan di web saat ini.

<jsp:plugin type=“applet”

code=“MyApplet.class”

width=“400” height=“300”>

</jsp:plugin>

java beans1
Java Beans?
  • Apa itu Beans?
  • Beans adalah obyek Java standar.
    • Harus ada konstruktur nol argumen.
    • Sebaiknya tidak ada field public.
    • Nilai-nilai diakses melalui pemanggilan metode, getXxx, setXxx & isXxx.
java bean contoh
Java Bean (Contoh)

public class Person {

private int age;

private String name;

… … …

public void setAge(int age){

this.age = age;

}

public void setName(String name){

this.name = name;

}

public intgetAge(){

return this.age;

}

public String getName(){

return this.name;

}

… … …

}

java beans jsp
Java Beans & JSP
  • Ada tiga konstruksi utama untuk menggunakan Java Beans dalam JSP.
    • <jsp:useBean ……… />
    • <jsp:getProperty ……… />
    • <jsp:setProperty ……… />
jsp usebean
jsp:useBean
  • Digunakan untuk memuat beans yang akan digunakan dalam dokumen JSP.

Sintaks:

<jsp:useBean id=“name” class=“package.Class” />

Contoh:

<jsp:useBean id=“person” class=“iiitmk.Person” />

Sama dengan:

<% iiitmk.Person person = new iiitmk.Person(); %>

mendapatkan properti bean
Mendapatkan Properti bean
  • Digunakan untuk membaca properti dari beans.

Sintaks:

<jsp:getProperty id=“name” property=“propName” />

Contoh:

<jsp:getProperty id=“person” property=“name” />

Sama dengan:

<%= person.getName() %>

menseting properti bean
Menseting Properti bean
  • Digunakan untuk mengatur nilai dari properti beans.

Sintak:

<jsp:setProperty id=“name” property=“propName” value=“propValue” />

Contoh:

<jsp:setProperty id=“person” property=“name” value=“Popeye The Sailor” />

Sama dengan:

<% person.setName(“Popeye The Sailor”); %>

parameter propert y request
Parameter Property & Request
  • Nilai dari properti bean dapat diset secara langsung dari nilai parameter request yang berkaitan.

Sintaks:

<jsp:setProperty id=“name” property=“propName” param=“propName” />

Contoh:

<jsp:setProperty id=“person” property=“name” param=“name” />

<jsp:setProperty id=“person” property=“*” />

bagi pakai beans lingkup
Bagi-pakai Beans (lingkup)
  • Lingkup dari suatu bean mendefinisikan dimana bean tersebut disimpan dan bagaimana dapat diakses. Secara default, accessiblenyaadalah variabel lokal. Tempat lain penyimpanan bean adalah request, session dan aplikasi (application).

Sintaks:

<jsp:useBean … … … scope=“…” />

Lingkup:

page, request, session & application

lingkup page
Lingkup Page
  • Lingkup default dari suatu bean. Bean diikat ke variabel lokal dalam metode _jspServicedan juga diletakkan dalam variabel predefined pageContext, dapat dikases dengan pemanggilan metode getAttribute().

Sintaks:

<jsp:useBean … … … scope=“page” />

<jsp:useBean … … … />

lingkup request
Lingkup Request
  • Beanjuga ditempatkan di dalam obyek the HttpServletRequest (request) selama masa request aktif.
  • Dapat diakses dengan metode getAttribute().

Sintaks:

<jsp:useBean … … … scope=“request” />

lingkup session
Lingkup Session
  • Beanjuga diletakkan di dalam obyek HttpSession (session).
  • Dapat diakses dengan metode getAttribute().

Sintaks:

<jsp:useBean … … … scope=“session” />

lingkup application
Lingkup Application
  • Beanjuga diletakkan di dalam obyek ServletContext(application). Context dari servletdishare oleh semua servlet dan JSP dalam aplikasi web.
  • Dapat diakses dengan metode getAttribute().

Sintaks:

<jsp:useBean … … … scope=“application” />

rangkuman
Rangkuman
  • Servlet dan JSP digunakan untuk membangun aplikasi web (server side scripting)
  • Servlet: HTML dalam kode Java
  • JSP: Kode Java dalam HTML
  • Javabeans merupakan obyek standar yang terstruktur untuk memudahkan pengembangan aplikasi berbasis Java
referensi
Referensi
  • Bacaan Utama
    • Java Servlet Tutorial
      • http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html
    • Java Server Pages Tutorial
      • http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro.html
    • Java Beans Tutorial
      • http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPBeans.html
tools
Tools
  • Apache Tomcat
    • http://tomcat.apache.org/
  • Eclipse
    • http://www.eclipse.org/
  • Eclipse Web Tools
    • http://www.eclipse.org/webtools/