Struktur Aplikasi WEB





Struktur Dasar Dari Aplikasi Web
Supaya container dapat mengenali aplikasi sebagai aplikasi web yang sah, harus dibentuk struktur direktori yang spesifik

Stuktur direktori dalam Java Web Application
Pertama, top level Folder(salah satu yang mengisi aplikasi Anda) tidak harus diberi nama  Dokument Root.  Sesungguhnya pemberian nama apapun tidak mempengaruhi aplikasi, namun disarankan untuk menamainya sesuai dengan nama aplikasi Anda. Penamaan sebagai Document Root hanya menggambarkan direktori ini bertindak sebagai root folder pada file atau dokumen pada aplikasi Anda.
Kedua, folder lain dapat dimuat pada struktur direktori ini, sebagai contoh, karena  developer mengharapkan untuk mengorganisir content mereka, mereka dapat menciptakan suatu folder  images  dalam document root untuk semua file gambar, atau mungkin suatu direktori  config pada folder WEB-INF untuk menjaga informasi tentangkonfigurasi. Selama mengikuti alur struktur yang ditentukan seperti diatas, container mengijinan penambahan direktori.
Ketiga: Kapitalisasi pada folder WEB-INF adalah disengaja, Lowercaps pada class dan Library adalah disengaja juga, tidak mengikuti aturan kapitalisasi manapun pada folder ini akan mengakibatkan aplikasi Anda tidak dapat melihat isi dari folder ini.
Keempat: Semua content atau isi dari folder WEB-INF tidak dapat dilihat dari browser. Container secara otomatis mengatur berbagai hal, seperti : pada tampilan browser, folder tersebut tidak ada atau tidak diketahui. Mekanisme ini  melindungi sumberdaya vital seperti pada file class Java, konfigurasi aplikasi, dan lain sebagainya. Content pada folder ini hanya dapat di akses oleh aplikasi Anda.
Kelima: HARUS ADA SUATU FILE dengan nama web.xml didalam  folder WEB-INF. Meskipun, sebagai contoh, aplikasi web Anda hanya berisi content statis dan tidak menggunakan class Java atau file library, container masih akan mempersyaratkan bahwa aplikasi Anda menggunakan dua hal tersebut.

1.       Dengan menggunakan Netbeans IDE, Kita akan membuat project baru, klik file àNew Project, akan muncul dialog New Project
2.       Pada pne (bagian) Choose Project, pilih Java Web pada Categories and we Aplication pada Projects. Klik Next.
3.       Pada Name and Location, untuk isian Project Name, tulis WebApp1 sebagai nama Project name. klik Next.
klik Next
Klik finish

Ø  Poject no WebApp1 akan muncul dengan file index.jsp ditampilkan dalam editor.

Ø  Build dan run project
Sampai disini kita sudah mempunyai aplikasi web lengkap yang mencakup sebuah file JSP, index.jsp.
1)      Kita edit pada source index.jsp terlebih dahulu isi yang ada pada tag <h1> menjadi Hello Word! Pemrograman we java<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
--%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ini adalah aplikasi web saya yang pertama </title>
    </head>
    <body>

    <h1>Hello Word !! Pemrograman web java</h1>
    <h1>Halo dunia...</h1>
   
    <%--
    This example uses JSTL, uncomment the taglib directive above.
    To test, display the page like this: index.jsp?sayHello=true&name=Murphy
    --%>
    <%--
    <c:if test="${param.sayHello}">
        <!-- Let's welcome the user ${param.name} -->
        Hello ${param.name}!
    </c:if>
    --%>
   
    </body>
</html>

1)      Klik kanan node project WebApp1 dan pilih Run
2)      IDE kemudian akan mengkopilasi file sumber java , dan melakukan deploy pada platform deployment- contoh ini menggunakan GlassFish v2. Kemudian menampilkan browser
3)      Dalam browser akan ditampilkan hasil aplikasi

Ø  Modifikasi file index.jsp dari aplikasi
a)      Double ckick file indext.jsp pada bagian WebApp1 àWeb Pages
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
--%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Ini adalah aplikasi web saya yang pertama </title>
    </head>
    <body>

    <h1>Hello Word !! Pemrograman web java</h1>
    <h1>Halo dunia...</h1>
   
    <%--
    This example uses JSTL, uncomment the taglib directive above.
    To test, display the page like this: index.jsp?sayHello=true&name=Murphy
    --%>
    <%--
    <c:if test="${param.sayHello}">
        <!-- Let's welcome the user ${param.name} -->
        Hello ${param.name}!
    </c:if>
    --%>
   
    </body>
</html>

b)      Klik kanan node project WebApp1 dan pilih Run
c)       Browser akan menampilkan

Ø  Menambah Servlet ke Aplikasi
1)      Klik kanan node project WebApp1 dan pilih NewàServlet
-          Akan muncul dialog box New Servlet
-          Untuk isian Class Name, ketik Servlet1.
-          Untuk isian package, ketik package1. Klik Next
-          Klik finish pane pada Configure Servlet Deployment
-          Sekarang kita mempunyai file jsp, index.jsp, dan sebuah servlet, Servlet1.java dalam aplikasi

2)      Memodifikasi Servlet1.java yang telah dibangkitkan IDE
package package1;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author Student
 * @version
 */
public class Servlet1 extends HttpServlet {
   
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       ///* TODO output your page here
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet Servlet1</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet Servlet1 at " + request.getContextPath () + "</h1>");
        out.println("</body>");
        out.println("</html>");
        // */
        out.close();
    }
}

//"request" digunakan untuk membaca HTTP readers yang datang  
    // Form data HTML (contoh data di-enter dan di-submit oleh user )
    // sedangkan data yang lain dapat dimasukkan dari request client 
    
    // "response" adalah sebuah HTTP response line yang spesifik   
    // headers(contoh menspesifikasi content type dan men-setting cookies ).
    // Ia juga memiliki sebuah method yang memberikan ijin kepada servlet untuk            
//membangkitkan response kepada client 
//"out" untuk mengirim content kepada browser 

Bagian  pertama dari source diatas adalah meng-import  class di java.io (bagi PrintWriter, dsb), javax.servlet dan javax.servlet.http. Javax.servlet dan javax.servlet.http adalah package-package yang menyediakan interfaces  dan class untuk membuat sebuah servlet(untuk HttpServlet, HttpServletRequest dan HttpServletResponse). Dengan cara meng-extend HttpServlet, class ini akan meng-inherit method yang akan secara otomatis akan dipanggil  oleh server tergantung pada kondisi-kondisi tertentu (akan dibicarakan kemudian). Dengan meng-override method ini, kita dapat membuat servlet kita memiliki fungsi-fungsi yang kita inginkan. 
kita dapat melihat bahwa IDE yang telah kita buat sebagian akan meng-implementasi cessRequest. Jika kita akan menekan pada kotak dengan tanda tambah dibagian kiri awah, kita akan melihat bahwa processRequest adalah sebuah method sederhana yang dapat ita panggil baik dari doGet maupun doPost. Hal  ini berarti content dari method processRequest memberikan bentuk dasar bagi fungsionalitas dari servlet kita.  

3)      Build dan run project
-          Klik kanan node project WebApp1 dan pilih Run
-          ubah URL menjadi http://localhost:8080/WebApp1/Servlet1
-          Browser akan menampilkan

4)Mengubah URL Relatif dari aplikasi


5)      Build dan run project
-          Klik kanan node project WebApp1 dan pilih Run
-          Browser akan menampilkan

Ø  Menambah JSP baru ke aplikasi
a)       Menambah JSP baru
-          Klik kanan node project WebApp1 dan pilih NewàJSP
-          Untuk isian nama JSP File Name, ketik HaloJSP
-          
-          Klik finish. File HaloJSP.jsp telah ditambah ke project
b)       Modifikasi file haloJSP.jsp menjadi :
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
--%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Halaman JSP</title>
    </head>
    <body>

    <h1>Halo apa kabar ??</h1>
       
    <%--
    This example uses JSTL, uncomment the taglib directive above.
    To test, display the page like this: index.jsp?sayHello=true&name=Murphy
    --%>
    <%--
    <c:if test="${param.sayHello}">
        <!-- Let's welcome the user ${param.name} -->
        Hello ${param.name}!
    </c:if>
    --%>
   
    </body>
</html>
c)       Build dan run project
-          Klik kanan node project WebApp1 dan pilih Run
-          ubah URL menjadi http://localhost:8080/WebApp1/HaloJSP.java
-          Browser akan menampilkan

Ø  Melihab stuktur project dalam node file
-          Pilih jendela pada tab Files. Kita akan melihat pandangan files dari project WebApp1
-          Expand src dan expand java. Kita akan melihat semua file java
-          Expand web. Kita akan melihat semua file JSP(dari file HTML jikam  punya)
Ø  Melihat struktur WAR
File WAR adalah file zip yang berisi semua yang dibutuhkan untuk deploy aplikasi pada platform deployment Tomcat atau GlassFish. Struktur internal file WAR tersusun atas konten dari direktori web dibawah direktori build.
Memodifikasi web.xml agar HaloJSP.jsp menjadi file seperti JSP default.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>package1.Servlet1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/ Servlet1</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
       <welcome-file>
            HaloJSP.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

-          Klik kanan pada node project WebApp1 dan pilih run. Kita akan melihat di jendela browser tampilan dari HaloJSP.jsp

Ø  Mengakses Servlet
-          Memodifikasi web.xml agar HaloJSP.jsp menjadi
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>package1.Servlet1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/Servletku</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
       <welcome-file>
            HaloJSP.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

-          Klik kanan pada node project WebApp1 dan pilih run. Kita akan melihat error di jendela browser
-          Dari browser, tulis URL menjadi: http://localhost:8080/WebApp1/Servlet1


A.   Kesimpulan
Kita dapat mempelajari struktur aplikasi web. Kita dapat  deploy aplikasi web. Servlet adalah sebuah class dalam bahasa  pemgrograman Java yang digunakan untuk meningkatkan kapabilitas dari server sebagai host dari aplikasi yang diakses melalui request-response programming model(Diadaptasi dari tutorial J2EE). Servlet adalah sebuah class java yang meng-implement interface Servlet dan menerima request yang berasal dari class Java, web client, atau servlet lain yang membangkitkan response.  "Servlet" juga dipanggil sebagai HTTP Servlet. Hal ini disebakan karena servlets biasanya digunakan dengan HTTP, akan tetap servlet bukanlah merupakan salah satu spesifikasi spesifik dari protokol client-server.  Untuk memulai pembuatan servlet. Anda diharapkan mengerti mengenai pemrograman, konsep client-server, dasar-dasar HTML dan HTTP (HyperTextTransferProtocol). Untuk menciptakan sebuah servlet, Anda perlu untuk meng-import standard extension class  dari javax.servlet dan javax.servlet.http ke program java Anda. Javax.servlet berisi framework dasar servlet dimana javax.servlet.http digunakan sebagai ekstensi dari framework servlet  bagi servlet yang akan menjawab HTTP request.
 Untuk membuat servlet, developer akan  membuat subclasses dari HttpServlet dan menempatkan implementasi fungsionalnya dalam method doGet atau doPost.
Untuk men-deploy servlet ke dalam container web, dapat di-load sebagai file WAR pre- package. Proses packaging dapat dilakukan  secara otomatis dengan IDE atau melalui penggunaan build tool.
File WAR adalah file zip yang berisi semua yang dibutuhkan untuk deploy aplikasi pada platform deployment Tomcat atau GlassFish. Struktur internal file WAR tersusun atas konten dari direktori web dibawah direktori build.


0 komentar:

Post a Comment