Skip navigation


Pada pemrograman dalam PHP, pengaturan login sebuah user biasanya dilakukan pada sessioning. Dalam pemrograman web berbasis Java, server pun menyediakan mekanisme session untuk menyimpan data user pada tiap session. Berikut adalah contoh penanganan login pada servlet.

Yang perlu diperhatikan adalah di mana letak penanganan databasenya dan pengecekan login. Pada pemrograman PHP dengan paradigma prosedural biasanya programmer meletakkan sebuah fungsi untuk login yang menyatukan user dengan session karena session adalah sebuah global variable. Pada Java, session didapatkan dari invokasi dari instans sebuah servlet karena setiap request ditangani oleh sebuah servlet instance. Selain itu biasanya beberapa melakukan koneksi database pada method di servlet dan melakukan pengecekan langsung dengan query ke database

"SELECT (COUNT*) FROM users WHERE username = 'username' AND password = 'password' LIMIT 1";

Di dalam pemrograman dengan pola MVC, yang harusnya melakukan penanganan basis data adalah Model class. Jadi sebaiknya untuk login disediakan sebuah method login pada User Model class.

public class User {

    private String username;
    private String password;

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public String getUsername() {
        return username;
    }

    public void login(String username, String password) throws Exception {
        this.username = username;
        this.password = password;
        this.login();
    }

    public void login() throws Exception {
        //Hardcode
        if (!(this.username.equals("username") && this.password.equals("password"))) {
            throw new Exception("Invalid Login");
        }
    }
}

Pada Servlet untuk login yang bersangkutan cukup

        protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //Melakukan pengecekan session
        User currentuser = (User) request.getSession().getAttribute("currentuser");
        //Jika user sudah login
        if (currentuser != null) {
            response.sendRedirect("home");
        } else {
            try {
                String username = request.getParameter("username");
                String password = request.getParameter("password");
                currentuser = new User(username, password);
                //Login
                currentuser.login();
                //Penyimpanan ke session
                request.getSession(true).setAttribute("currentuser", currentuser);
                //Redirect
                response.sendRedirect("home");
            } catch (Exception ex) {
                //Redirect
                response.sendRedirect("error?message="+ex.getMessage());
            }
        }
    }

Pada bagian logout, untuk menghilangkan session cukup dengan method invalidate atau removeAttribute.

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            //Menghapus session
            request.getSession().invalidate();
            response.sendRedirect("login");
    }

Kode bisa diambil di sini. (as usual, rename extension to zip)

4 Comments

  1. keren mas

  2. mas saya mw tanya..
    si package javax servlet dapet darimana yh??
    kirim info ke email aze.. hhe

    • itu khan adanya di Java EE. Kalo pake Netbeans, tinggal install yang paket Java EE juga. Di Eclipse juga gitu.

  3. permisi, kayanya di jsp login buttonnya belom dikasih href🙂


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: