Pages

Rabu, 04 Januari 2012

KALKULATOR SERVLET


KALKULATOR SERVLET
Tutorial
Diajukan untuk Melengkapi Tugas Akhir UAS Mata Kuliah Praktikum Web Programming



Oleh :
Annisa Utami Ramadhini – 109091000019
Tiedy Rinintasari  – 109091000020
Restie Maya Puspita Hidayati  -  109091000041
TI 5 A - MULTIMEDIA



TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2012
Kalkulator Java EE
Tutorial ini diambil dari http://suhearie.wordpress.com dan sudah dimodifikasi sedemikian rupa oleh
1.       Annisa Utami Ramadhini – 109091000019
2.       Tiedy Rinintasari  – 109091000020
3.       Restie Maya Puspita Hidayati  -  109091000041
Artikel ini merupakan tutorial yang berisi aplikasi kalkulator sederhana dengan menggunakan arsitektur Java EE. Kali ini kita akan menggunakan Netbeans IDE 7.0.1 dan Glasshfish Server 3.1 sebagai application servernya.

1.       Setup Project
Start Netbeans, pilih menu File à New Project atau Ctrl + Shift + N. Pada dialog New Project, pilih Categories Java EE à Enterprise Application, klik Next.



Beri nama project-nya dengan nama TestEnterpriseProject.
Pilih Server Glassfish Server 3.1, Java EE Version Java EE 5, dan pastikan Anda mengaktifkan pilihan Create EJB Module dan Create Web Application Module, kemudian klik Finish.
Maka Netbeans akan meng-create project TestEnterpriseProject sebagai project utama, project TestEnterpriseProject-ejb sebagai sub-project untuk modul EJB, dan TestEnterpriseProject-war sebagai sub-project untuk modul web.

2.       EJB module
Ada 3 macam EJB dalam spesifikasi EJB versi 3.0 (EJB3) :
a.       Session Bean
Session bean adalah EJB yang digunakan untuk mengeksekusi proses. Isi dari Session Bean ini biassanya berupa kata kerja (transfer, pay, calculate, updateData, dll). Stateless Session Bean (SLSB) adalah Session Bean yang tidak menyimpan state (keadaan) pada setiap kali eksekusi. Berbeda dengan Statefull Session Bean (SFSB) yang dapat menyimpan state. State ini dapat kita gunakan misalnya untuk menyimpan informasi user atau barang-barang yang sudah dibeli (pada kasus online shop).
b.      Entity Bean
Entity Bean adalah EJB yang digunakan untuk mempermudah manipulasi database. Konsepnya adalah Object – Relational Mapping (ORM) yang berarti memetakan object dengan data di dalam database. Entity Bean sebenarnya adalah spesifikasi “bawaan” dari versi EJB sebelumnya yaitu EJB 2.1. Dalam EJB3, ada API lain yang lebih sederhana yaitu Java Persistence API (JPA). Sekarang orang lebih banyak menggunakan JPA dibandingkan Entity Bean.

c.       Message Driven Bean
Message Driven Bean (MDB) adalah EJB yang digunakan untuk keperluan messaging menggunakan Java Messaging Service (JMS).
Kali ini kita akan menggunakan Stateless Session Bean. Session Bean karena kita akan melakukan pertihutang matematik, Stateless karena kita tidak perlu menyimpan informasi apapun.
Klik kanan di sub-project EJB, pilih New à Session Bean.
Masukkan properties berikut :
EJB Name                            : CalculatorSession
Package                                : rat
Session Type                      : Stateless
Create Interface                               : Local
Netbeans secara otomatis akan meng-create class CalculatorSessionBean sebagai bean class dan CalculatorSessionLocal sebagai interface. Untuk membuat Session Bean, kita membutuhkan sebuah interface dan sebuah class. Interface digunakan untuk menentukan method apa yang bisa dipanggil oleh client, sedangkan bean class merupakan implementasi dari method tersebut.
Business Logic Interface – Local
Interface CalculatorSessionLocal diberi annotation @Local, artinya interface ini bisa diakses oleh client yang “local” atau berada dalam JVM yang sama dengan EJB server. Client yang kita gunakan adalah web component (JSP dan Servlet) yang berjalan di application server yang sama, sehingga kita cukup menggunakan Local interface. Di interface ini, kita hanya mendefinisikan satu method saja yaitu calculate yang menerima parameter-parameter berupa OPERATION, operand1 dan operand2.
Masukkan syntax code ini di file CalculatorSessionLocal.java 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rat;

import javax.ejb.Local;

/**
 *
 * @author DC
 */
@Local
public interface CalculatorSessionLocal {
    public enum OPERATION {ADD, SUBSTRACT, MULTIPLY, DIVIDE};
        
    public int calculate(OPERATION operation, int oper1, int oper2);

}

Bean Class – Business Logic Implementation
Class CalculatorSessionBean adalah implementasi dari interface CalculatorSessionLocal. Kita menandainya dengan annotation @Stateless yang berarti kita mendefinisikannya sebagai Stateless Session Bean. Pada implementasi method calculate, kita melakukan perhitungan matematika yang sebenarnya.
Masukkan Code ini di file CalculatorSession.java 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rat;

import javax.ejb.Stateless;

/**
 *
 * @author DC
 */
@Stateless
public class CalculatorSession implements CalculatorSessionLocal {

    public int calculate(OPERATION operation, int oper1, int oper2) {
        switch(operation) {
            case ADD:
                return oper1+oper2;
            case SUBSTRACT:
                return oper1-oper2;
            case MULTIPLY:
                return oper1*oper2;
            case DIVIDE:
                return oper1/oper2;
            default:
                throw new UnsupportedOperationException("Not supported yet.");
        }
    }
}
3.       Web Module
Kita akan menggunakan web sebagai user interface. Komponen yang akan digunakan adalah Servlet dan JSP.
a.       Servlet
Servlet adalah komponen web yang berupa java class yang meng-extends javax.servlet.http.HttpServlet. Class ini biasanya digunakan untuk menangani http request, melakukan processing, kemudian memberikan hasil processing tersebut ke halaman JSP untuk ditampilkan di browser. Konsep ini disebut Model-View-Controller (MVC).
b.      Java Server Page (JSP)
JSP mirip dengan PHP atau ASP yang merupakan halaman HTML yang dapat disisipi dengan kode java (scriplet). Tujuannya untuk memudahkan developer dalam merancang user interface.
File index.jsp, kita gunakan untuk membuat form html yang akan men-submit parameter-parameter yang digunakan untuk melakukan perhitungan. Netbeans sudah menyediakan file index.jsp ini di dalam folder TestEnterpriseProject-war à Web Pages. Edit file tersebut sehingga menjadi seperti berikut. Form html disubmit ke servlet (CalculatorServlet), yang sesaat lagi akan kita buat.
Edit dan masukkan Code ini di file index.jsp 
<%--
    Document   : index
    Created on : 02 Jan 12, 16:08:11
    Author     : DC
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
   
       
   

Welcome to Java EE Calculator Test Project !


                    Operation:
                   

                    Operand 1:

                    Operand 2:

           
       
   
Create servlet, dengan cara klik kanan di module TestEnterpriseProject-war, pilih New à Servlet.


Isikan class name CalculatorServlet, dan package rat.servlet. Klik Next, pastikan option untuk memasukkan informasi servlet ini ke file deployment descriptor diaktifkan, kemudian klik Finish.
Modifikasi servlet tersebut menjadi seperti berikut. Di class ini kita memiliki satu class variable bertipe CalculatorSessionLocal dan memberinya annotation @EJB yang berarti application server akan meng-inject object tersebut secara otomatis ke dalam servlet kita. Konsep ini disebut dengan dependency injection. Selanjutnya, kita mengambil parameter-parameter yang dikirim melalui http request, kemudian menggunakan session bean untuk melakukan perhitungan berdasarkan parameter-parameter tersebut. Hasil perhitungan kita masukkan sebagai attribut di object request. Untuk menampilkannya, kita akan mem-forward request menuju ke halaman JSP CalculatorPage.jsp (kita buat sesaat lagi) menggunakan RequestDispatcher.
Masukkan syntax code di CalculatorServlet.java yang kita buat tadi :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rat.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ejb.EJB;
import rat.CalculatorSessionLocal;
/**
 *
 * @author DC
 */
public class CalculatorServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP GET and POST methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
        @EJB
    CalculatorSessionLocal calculatorSession;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
                String operation = request.getParameter("operation");
                int oper1 = Integer.parseInt(request.getParameter("oper1"));
                int oper2 = Integer.parseInt(request.getParameter("oper2"));

                int result = calculatorSession.calculate(CalculatorSessionLocal.OPERATION.valueOf(operation), oper1, oper2);
                request.setAttribute("result", result);
                request.getRequestDispatcher("/CalculatorPage.jsp").forward(request, response);

        }

    //
    /**
     * Handles the HTTP GET method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP POST method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }//
}



File CalculatorPage.jsp, kita gunakan untuk menampilkan hasil perhitungan. Klik kanan pada TestEnterpriseproject-war à New lalu klik JSP.

Beri Nama dengan CalculatorPage :

Masukkan syntax code ini :
<%--
    Document   : CalculatorPage
    Created on : 02 Jan 12, 16:28:38
    Author     : DC
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
   
       
        JSP Page
   
   
       

Java EE Calculator Result:


            Operation: <%=request.getParameter("operation")%>
                Operand 1: <%=request.getParameter("oper1")%>
                Operand 2: <%=request.getParameter("oper2")%>
                Result: <%=  request.getAttribute("result")%>
                BACK
   
Setelah selesai semua, pindah ke tab Services, buka tree Servers, klik kanan di Glassfish, pilih Start untuk menjalankan Glassfish application server. Setelah glassfish berjalan, kembali ke tab Projects, klik kanan di TestEnterpriseProject, pilih Deploy. Setelah proses deploy selesai, klik kanan pada TestEnterpriseProject lalu klik Run.


Sekian tentang tutorial pembuatan Kalkulator Servlet dengan menggunakan Java Enterprise ini, semoga bermanfaat dan selamat mencoba. FIGHTING!!

0 komentar:

 

Copyright © IT GROW!!. Template created by Volverene from Templates Block
lasik surgery new york and cpa website solutions
WP theme by WP Themes Expert