Belajardengan.com merupakan domain blog lama dari delajardengan.blogspot.com. Mohon kritik dan sarannya untuk perkembangan blog ini.
email: blog.tkx.pnp@gmail.com

Dasar JEE : Pengalihan Response

♠ Posted by Unknown in at 3:03 AM
Latihan dasar JEE #1

Pada J2EE terdapat 2 methos pangalihan resposse:

  1. RequestDispacher
  2. Send Direct

Request Dispacher
Kali ini saya akan mencoba membuat sebuah form login sederhana. Disini terdapat dua buah inputtan, yaitu:
1. namauser
2. password
apabila user masuk sebagai admin maka akan dialihkan ke admin.jsp, apabia user memasukkan salah maka akan di alihkan kembali ke halaman login

index.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>login</h1>
        <form action="LoginDispacher" method="POST">
            <fieldset>
                UserName : <input type="text" name="nama" value="" />
            </fieldset>
            <fieldset>
                Password : <input type="password" name="pass" value="" />
            </fieldset>
            <fieldset>
                <input type="submit" value="Login" />
            </fieldset>
        </form>
    </body>
</html>

admin.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Halaman Admin</title>
    </head>
    <body>
        <h1> Anda Login sebagai "Admin"</h1>
        
    </body>
</html>

user.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>User Page</title>
    </head>
    <body>
        <h1>Anda login sebagai "Users"</h1>
    </body>
</html>

Login.java ---> servlet
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String username= request.getParameter("nama");
        String password= request.getParameter("pass");
        RequestDispatcher dis=null;
        if(username.equalsIgnoreCase("admin")&&password.equals("admin")){
            dis= request.getRequestDispatcher("/admin.jsp");
        }else if(username.equalsIgnoreCase("user")&&password.equals("user")){
            dis =request.getRequestDispatcher("/user.jsp");
        }else{
            out.println("Login Salah");
            dis = request.getRequestDispatcher("/index.jsp");
        }
        dis.include(request, response);
    }




apabila pada baris 'dis.include(request, response);' login.java(servlet) diganti dengan 'dis.forward(request, response);' tulisan login salah tidak akan include ke login.

Send Direct
untuk penggunaan method sendDirect kita tinggal ganti login.java (servlet) jadi seperti :
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String username= request.getParameter("nama");
        String password= request.getParameter("pass");
        //RequestDispatcher dis=null;
        if(username.equalsIgnoreCase("admin")&&password.equals("admin")){
            //dis= request.getRequestDispatcher("/admin.jsp");
            response.sendRedirect("admin.jsp");
        }else if(username.equalsIgnoreCase("user")&&password.equals("user")){
            //dis =request.getRequestDispatcher("/user.jsp");
            response.sendRedirect("user.jsp");
        }else{
            out.println("Login Salah");
            //dis = request.getRequestDispatcher("/index.jsp");
            response.sendRedirect("index.jsp");
        }
        //dis.forward(request, response);
    }

Perbedaan Pengalihan response dengan method Dispacher dan sendDirect adalah terdapat pada tampilan url di Browser......


0 komentar:

Post a Comment