Buku Membuat Aplikasi Chat Menggunakan Java


Buku Membuat Aplikasi Chat Menggunakan Java

Buku Membuat Aplikasi Chat Menggunakan Java

Buku Membuat Aplikasi Chat Menggunakan Java berisi cara membuat aplikasi chat menggunakan framework Netty. Dibuku ini dibahas secara lengkap dan detail dari awal sampai testing aplikasi chating nya. Baca lebih lanjut

Iklan

Buku GRATIS : Membangun Aplikasi RESTful Web Service Menggunakan Spring Web MVC


Baru selesai bikin buku “Membangun Aplikasi RESTful Web Service Menggunakan Spring Web MVC”.

Membangun Aplikasi RESTful Web Service Menggunakan Spring WEB Mvc

Membangun Aplikasi RESTful Web Service Menggunakan Spring WEB Mvc

Mau? 🙂  Baca lebih lanjut

Servlet 3 – Menambahkan Data ke Session


Session merupakan tempat yang dapat kita gunakan untuk menyimpan data, namun data yang ada dalah Session tidaklah permanen, data tersebut akan hilang secara otomatis ketika pengguna menutup aplikasi perambah yang digunakan atau jika pengguna lama tidak melakukan interaksi dengan website, misal selama 30 menit. Session biasa digunakan untuk menyimpan data sementara, contohnya dalam ecommerce biasanya terdapat keranjang belanja, dan biasanya keranjang belanja di simpan dalam sebuah session. Dan contoh-contoh yang lainnya. Kali ini kita akan mencoba melakukan proses penambahan data yang disimpan dalam session menggunakan Servlet 3.

Pertama kita buat halaman HTML untuk menampilkan form input data, misal data orang dengan input data “nama depan”, “nama belakang”, “tanggal lahir” dan “email”.

<!doctype html>
<html>
    <head>
        <title>Session</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h1>Input Data</h1>
        <form action="Session" method="post">
            <table>
                <tbody>
                    <tr>
                        <td>Nama Depan :</td>
                        <td><input type="text" name="nama_depan"/></td>
                    </tr>
                    <tr>
                        <td>Nama Belakang :</td>
                        <td><input type="text" name="nama_belakang"/></td>
                    </tr>
                    <tr>
                        <td>Tanggal Lahir :</td>
                        <td><input type="text" name="tanggal_lahir"/></td>
                    </tr>
                    <tr>
                        <td>Email :</td>
                        <td><input type="text" name="email"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Simpan"/></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>

Setelah itu kita buat Servlet untuk menampung data yang dimasukkan dari halaman HTML yang telah dibuat :

package khannedy.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Session", urlPatterns = {"/Session"})
public class SessionServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        @SuppressWarnings("unchecked")
        List<Object[]> list = (List<Object[]>) request.getSession().getAttribute("data");

        if (list == null) {
            list = new ArrayList<Object[]>();
            request.getSession().setAttribute("data", list);
        }

        Object[] objects = new Object[4];
        objects[0] = request.getParameter("nama_depan");
        objects[1] = request.getParameter("nama_belakang");
        objects[2] = request.getParameter("tanggal_lahir");
        objects[3] = request.getParameter("email");

        list.add(objects);

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet SessionServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Daftar Data</h1>");
            out.println("<table border='1'>");
            out.println("<thead>");
            out.println("<tr>");
            out.println("<td>Nama Depan</td>");
            out.println("<td>Nama Belakang</td>");
            out.println("<td>Tanggal Lahir</td>");
            out.println("<td>Email</td>");
            out.println("</tr>");
            out.println("</thead>");
            out.println("<tbody>");

            for (Object[] data : list) {
                out.println("<tr>");
                out.println("<td>" + data[0] + "</td>");
                out.println("<td>" + data[1] + "</td>");
                out.println("<td>" + data[2] + "</td>");
                out.println("<td>" + data[3] + "</td>");
                out.println("</tr>");
            }

            out.println("</tbody>");
            out.println("</table>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}

Hasilnya :

Screenshot-Session - Google Chrome

Screenshot-Session - Google Chrome

Screenshot-Servlet SessionServlet - Google Chrome

Screenshot-Servlet SessionServlet - Google Chrome

Servlet 3 – Upload File


Pada artikel ini saya akan membahas tentang cara upload file (berkas) menggunakan Servlet 3. Saat ini upload file selalu digunakan pada jenis website apapun, seperti upload gambar photo profile, upload dokumen, dan lain-lain.

Untuk melakukan upload, kita perlu membuat sebuah halaman dengan form input yang menggunakan metode POST dan enctype-nya multipart/form-data, contoh :

<!doctype html>
<html>
    <head>
        <title>Upload File</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form name="uploadform" action="UploadFile" method="POST" enctype="multipart/form-data">
            <input type="file" name="upload"/>
            <input type="submit" value="Upload"/>
        </form>
    </body>
</html>

Setelah itu, kita dapat membuat halaman Servlet 3 untuk menangani upload data file tersebut :

package khannedy.web.servlet;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

@WebServlet(name = "UploadFile", urlPatterns = {"/UploadFile"})
public class UploadFileServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        Part part = req.getPart("upload");

        String temp = part.getHeader("content-disposition").split(";")[2].trim();
        String filename = temp.substring("filename=\"".length(), temp.length() - 1);

        InputStream inputStream = part.getInputStream();
        FileOutputStream stream = new FileOutputStream(getServletContext().getRealPath("upload") + "/" + filename);

        int i = -1;
        while ((i = inputStream.read()) != -1) {
            stream.write(i);
        }

        stream.close();
        inputStream.close();

        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out = resp.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet SayHelloServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<a href=\"upload/" + filename + "\">");
            out.println("Download Here");
            out.println("</a>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}

hasilnya :

Screenshot-Upload File - Google Chrome

Screenshot-Upload File - Google Chrome

Screenshot-Servlet SayHelloServlet - Google Chrome

Screenshot-Servlet SayHelloServlet - Google Chrome

Servlet 3 – Penggunaan RequestDispatcher untuk Melakukan Forward Request


Dalam javadoc, RequestDispatcher merupakan :

Defines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server. The servlet container creates the RequestDispatcher object, which is used as a wrapper around a server resource located at a particular path or given by a particular name.

Dengan begitu, RequestDispatcher dapat kita gunakan untuk memforward request ke halaman lain, contohnya misal saat ini kita akan memcoba membuat sebuah halaman untuk manipulasi data Person, dimana hanya menggunakan sebuah Servlet. Misal saat pengguna membuka halaman :

Jika untuk melakukan render halaman dilakukan, maka hal ini akan sangat menyulitkan, oleh sebab itu ada baiknya jika kita membuat halaman daftar person dan create person pada file yang berbeda, misal kita membuat halaman list.html untuk menampilkan data seluruh person.

<!doctype html>
<html>
    <head>
        <title>List of Person</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <table border="1">
            <thead>
                <tr>
                    <th>Id</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Birthday</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>1</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>4</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
                <tr>
                    <td>5</td>
                    <td>Eko Kurniawan</td>
                    <td>Khannedy</td>
                    <td>29 Desember 1988</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

dan membuat halaman create.html untuk menampilkan form halaman input data person.

<!doctype html>
<html>
    <head>
        <title>Create New Person</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <h1>Create New Person</h1>
        <form method="POST">
            <table>
                <tbody>
                    <tr>
                        <td>First Name :</td>
                        <td><input type="text" name="first_name"/></td>
                    </tr>
                    <tr>
                        <td>Last Name :</td>
                        <td><input type="text" name="last_name"/></td>
                    </tr>
                    <tr>
                        <td>Birthday :</td>
                        <td><input type="text" name="birthday"/></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Create"/></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>

setelah itu baru buat servlet untuk menangani request browser.

package khannedy.web.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Person", urlPatterns = {"/Person"})
public class PersonServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String action = request.getParameter("action");
        if (action == null) {
            action = "list";
        }

        if (action.equals("create")) {
            request.getRequestDispatcher("/WEB-INF/page/create.html").forward(request, response);
        } else if (action.equals("list")) {
            request.getRequestDispatcher("/WEB-INF/page/list.html").forward(request, response);
        } else {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }

    }
}

hasilnya adalah :

Screenshot-List of Person - Google Chrome

Screenshot-List of Person - Google Chrome

Screenshot-Create New Person - Google Chrome

Screenshot-Create New Person - Google Chrome

Servlet 3 – Contoh Parameter Menggunakan Metode POST


Pada artikel ini, saya akan membuat contoh tentang penggunaan parameter dan metode POST pada servlet. Hal pertama yang perlu dilakukan adalah membuat halaman HTML yang berisikan input form yang akan di berikan ke servlet. Pada halaman HTML, kita akan membuat input berupa name yang harus diisi oleh pengguna.

<html>
    <head>
        <title>Say Hello</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form action="SayHello" method="post">
            <label for="name">Name :</label>
            <input id="name" name="name"/>
            <input type="submit" value="Say Hello"/>
        </form>
    </body>
</html>

Setelah itu buatlah servlet, pada servlet kita akan menampilkan tulisan Hello 'nama'.

package khannedy.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "SayHello", urlPatterns = {"/SayHello"})
public class SayHelloServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out = resp.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet SayHelloServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Hello " + req.getParameter("name") + "</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}

Hasilnya seperti pada gambar dibawah ini :

Screenshot-Say Hello - Google Chrome

Screenshot-Say Hello - Google Chrome

Screenshot-Servlet SayHelloServlet - Google Chrome

Screenshot-Servlet SayHelloServlet - Google Chrome

Selamat mencoba 😀

Membuat TableModel yang Dinamis


Kalo temen-temen anggota Jug-Bandung, pasti sudah tau ini, soalnya kemaren dah di bahas di milis Jug-Bandung, kalo blon tau silahkan kunjungi disini :

http://groups.google.co.id/group/jug-bandung/t/a6a2717fca2a32ed

Sekalian juga yang belum join, silahkan join 😀

Ceritanya gini, biasanya kalo kita bikin table, maka kita juga bikin tablemodel, misal tabel mahasiswa, maka kita bikin tablemodel mahasiswa, trus kalo tabel anggota, maka bikin tablemodel anggota juga, dan seterusnya 😀 Bayangkan jika di aplikasi kita ada 50 table, berarti kita biki 50 tablemodel juga 😦 capedeh…

Nah gimana caranya kita bikin 1 tablemodel, dan bisa digunakan oleh semuany? Baca lebih lanjut

NetBeans IDE 6.7 RC3 is Release


NetBeans IDE Download.

baru saja netbeans 6.7 rc 3 release, bagi yang pecinta netbeans, silahkan download…..