Membuat web untuk login dengan servlet

October 25, 2008 at 10:29 am Leave a comment

Pertama mengenal web dengan java wah kayaknya susah, tapi kalau mau dicoba coba ya jadi juga. lewat blog ini saya posting step-by-step membuat web yang ada loginnya, materinya sebenarnya sudah ada pada jeni3. OK langsung saja mulai

– buka dulu netbean

– Buat project baru dengan nama advanceLogin (File > New Project> pada Categories pilih Web > Web Application > Next > pada Project name beri nama advanceLogin > Finish)

– tambahkan coding berikut

<tr>

<td width=”165″><a href=”javascript:;” class=”navText”>login</a></td>

</tr>

Diatas coding

<tr>

<td width=”165″><a href=”javascript:;” class=”navText”>destinations</a></td>

</tr>

Kemudian simpan webnya dengan nama index.htm (File > Save > File name = index.htm > Save > maka akan keluar komentar agar file-file image dicopykan dalam folder web, saya simpan sekalian dalam folder image (dibuat dulu kalau belum ada) yang berada didalam folder Project )

Hasilnya sbb :

Folder image berisi file-file image bawaan dari template sedangkan file index.htm ada di luarnya

Langkah berikutnya lagi semua coding dari file index.htm copy semuanya kedalam index.jsp. Jadi yang diindex.jsp dihapus semua codingnya dengan coding dari index.htm

Kemudian copy folder image ke dalam folder web yang ada pada project netbean anda (gunakan saja )

contoh hasilnya begini


Kemudian buka project di netbean, maka netbean juga akan menampilkan folder yang baru saja dicopy sehingga kalau di running hasilnya begini

Pada Source Packages buatkan Package dengan nama jeni3.servlet

kemudian pada packages tersebut buatkan servlet dengan nama LoginFormServlet

codingnya sbb :

/*

* LoginFormServlet.java

*/

package jeni3.servlet;

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

*

* @author hary susanto

* @version

*/

public class LoginFormServlet 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”);

RequestDispatcher rd = null;

HttpSession session = request.getSession();

if (session.getAttribute(“user”) != null) {

rd = request.getRequestDispatcher(“/success”);

rd.forward(request, response);

}

PrintWriter out = response.getWriter();

out.println(“<form id=’form1′ name=’form1′ method=’post’ action=’login’>”) ;

out.println(“<table width=’243′ border=’0′><tr>”);

out.println(“<td width=’61’>Username</td>”);

out.println(“<td width=’172′><label>”);

out.println(“<input type=’text’ name=’username’ />”);

out.println(“</label></td></tr> <tr><td>Password</td><td><label>”);

out.println(“<input type=’password’ name=’password’ />”);

out.println(“ </label></td></tr><tr>”);

out.println(“<td colspan=’2′><input type=’submit’ name=’Submit’ value=’Login’ /><input type=’Reset’ name=’Reset’ value=’Reset’ /></td>”);

out.println(“</tr> </table></form>”);

out.println(“”);

out.close();

}

// <editor-fold defaultstate=”collapsed” desc=”HttpServlet methods. Click on the + sign on the left to edit the code.”>

/** Handles the HTTP <code>GET</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Handles the HTTP <code>POST</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Returns a short description of the servlet.

*/

public String getServletInfo() {

return “Short description”;

}

// </editor-fold>

}

Selanjutnya pada web.xml (filenya terletak pada Web pages, WEB-INF) servlet mapping dirubah menjadi sbb:

<servlet-mapping>

<servlet-name>LoginFormServlet</servlet-name>

<url-pattern>/loginForm</url-pattern>

</servlet-mapping>

Sampai disini perlu dihubungkan antara halaman utama dengan menu loginnya, caranya

buka index.jsp kemudian pada coding yang hyperlink ke menu login diedit menjadi seperti berikut :

<tr>

<td width=”165″><a href=”./loginForm” class=”navText”>login</a></td>

</tr>

<tr>

<td width=”165″><a href=”javascript:;” class=”navText”>destinations</a></td>

</tr>

sampai disini saya running, mestinya keluar halaman utama dan kemudian saya klik tombol login sehingga masuk ke halaman login sbb :

pada LoginFormServlet terdapat coding

out.println(“<form method=’post’ action=’login’>”) ;

menunjukkan bahwa actionnya menuju ke servlet dengan <url-pattern> login, nah berarti butuh penanganan lagi untuk menerima request dari menu login tersebut, lanjutnya

pada Packages jeni3.servlet buat servlet dengan nama LoginServlet yang codingnnya sbb

/*

* LoginServlet.java

*

* Created on September 25, 2008, 10:08 AM

*/

package jeni3.servlet;

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

*

* @author hary susanto

* @version

*/

public class LoginServlet 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 {

RequestDispatcher rd = null;

HttpSession session = request.getSession();

if (session.getAttribute(“user”) != null) {

rd = request.getRequestDispatcher(“/success”);

rd.forward(request, response);

}

String userName = request.getParameter(“username”);

String password = request.getParameter(“password”);

if (authenticate(userName, password)) {

session.setAttribute(“user”,userName);

rd = request.getRequestDispatcher(“/success”);

rd.forward(request, response);

} else {

response.setContentType(“text/html;charset=UTF-8”);

PrintWriter out = response.getWriter();

out.println(“Username atau passwordnya salah”);

rd = request.getRequestDispatcher(“/loginForm”);

rd.include(request, response);

out.close();

}

}

public boolean authenticate(String username, String password){

return(username.equals(“jeni”)&& password.equals(“amik”));

}

// <editor-fold defaultstate=”collapsed” desc=”HttpServlet methods. Click on the + sign on the left to edit the code.”>

/** Handles the HTTP <code>GET</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Handles the HTTP <code>POST</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Returns a short description of the servlet.

*/

public String getServletInfo() {

return “Short description”;

}

// </editor-fold>

}

Kemudian mapping pada web.xml dirubah

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

Kemudian untuk menangani jika loginnya benar maka perlu dibuatkan servlet yang menanganinya, pada packages jeni3.servlet buat servlet dengan nama SuccessServlet, codingnya sbb :

/*

* SuccessServlet.java

*/

package jeni3.servlet;

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

* @author hary susanto

* @version

*/

public class SuccessServlet 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 {

HttpSession session = request.getSession();

RequestDispatcher rd = null;

response.setContentType(“text/html;charset=UTF-8”);

PrintWriter out = response.getWriter();

if (session.getAttribute(“user”)==null){

out.println(“Anda belum login, Silahkan login dahulu”);

} else {

out.println(“<a href = ‘./index.jsp’>Home</a><br>”);

out.println(“Hello ” + session.getAttribute(“user”)+ ” <a href =’./logout’>Logout</a> “);

rd = request.getRequestDispatcher(“temp/header.html”);

rd.include(request, response);

rd = request.getRequestDispatcher(“temp/mainContent.html”);

rd.include(request, response);

rd = request.getRequestDispatcher(“temp/footer.html”);

rd.include(request, response);

}

}

// <editor-fold defaultstate=”collapsed” desc=”HttpServlet methods. Click on the + sign on the left to edit the code.”>

/** Handles the HTTP <code>GET</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Handles the HTTP <code>POST</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Returns a short description of the servlet.

*/

public String getServletInfo() {

return “Short description”;

}

// </editor-fold>

}

Kemudian mapping pada web.xml dirubah sbb:

<servlet-mapping>

<servlet-name>SuccessServlet</servlet-name>

<url-pattern>/success</url-pattern>

</servlet-mapping>

Selanjutnya buat Folder pada Web Pages dengan nama temp

Buat 3 file didalam folder temp tersebut masing-masing yaitu header.html, mainContent.html, dan footer.html, codingnya sbb :

Header.html codingnya :

<html>

<head>

<title>AMIK PGRI KEBUMEN ONLINE</title>

</head>

<body>

</body>

</html>

mainContent.html codingnya sbb:

Selamat, login sukses

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

Sedangkan untuk footer.html codingnya adalah sbb:

<p>copyright&copy;2008 -&nbsp; AMIK PGRI KEBUMEN</p>

</body>

</html>

Sampai tahap ini coba dirunning lagi, mestinya web sudah bisa digunakan untuk login, contoh web saya ini saya run kemudian login ? masuk diisi usernamenya jeni passwordnya amik terus login, ya sukses masuk ke halaman web berikutnya yang tampilannya sbb :

Nah sampai disini sudah jadi tampilannya, bisa login cuman logout belum jadi, sementara browsernya ditutup dahulu dilanjutkan dengan membuat logoutnya.

Untuk membuat logout buat servlet dengan nama LogoutServlet pada packages jeni3.servlet dengan coding sbb:

/*

* LogoutServlet.java

*

* Created on September 27, 2008, 3:45 AM

*/

package jeni3.servlet;

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

*

* @author hary susanto

* @version

*/

public class LogoutServlet 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();

RequestDispatcher rd = null;

HttpSession session = request.getSession();

if (session.getAttribute(“user”)!=null){

session.removeAttribute(“user”);

session.invalidate();

out.println(“Logout success”);

}

rd = request.getRequestDispatcher(“index.jsp”);

rd.include(request, response);

out.close();

}

// <editor-fold defaultstate=”collapsed” desc=”HttpServlet methods. Click on the + sign on the left to edit the code.”>

/** Handles the HTTP <code>GET</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Handles the HTTP <code>POST</code> method.

* @param request servlet request

* @param response servlet response

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

/** Returns a short description of the servlet.

*/

public String getServletInfo() {

return “Short description”;

}

// </editor-fold>

}

Kemudian pada web.xml dirubah

<servlet-mapping>

<servlet-name>LogoutServlet</servlet-name>

<url-pattern>/logout</url-pattern>

</servlet-mapping>

Tinggal di run, mestinya web bisa untuk login dan logout

Nah dilanjutkan lagi dengan membuat filter tujuannya filter dibuat ini untuk mengetahui usernya sudah login belum ? kalau sudah mestinya bisa masuk ke halaman Administrator, tidak jauh beda dengan blog, bedanya ini bikinan sendiri dan pakai java, oke lanjutkan lagi.

Buat packages dengan nama jeni3.servlet.filter dan didalamnya dibuatkan class dengan nama AuthenticationFilter dengan coding didalamnya sbb :

/*

* AuthenticationFilter.java

*

* Created on October 25, 2008, 5:30 AM

*/

package jeni3.servlet.filter;

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

*

* @author hary susanto

* @version

*/

public class AuthenticationFilter implements Filter {

private FilterConfig config;

public void init(FilterConfig filterConfig) throws ServletException {

this.config = filterConfig;

}

public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

response.setContentType(“text/html;enCoding = UTF-8”);

PrintWriter out = response.getWriter();

HttpSession session = ((HttpServletRequest)request).getSession(false);

if (session.getAttribute(“user”)!= null){

chain.doFilter(request, response);

}else{

out.println(“<a href = ‘../index.jsp’>Home</a><br>”);

out.println(“Maaf tidak diijinkan mengakses halaman ini. Silahkan <a href=’../loginForm’> login </a>dahulu”);

out.close();

}

}

public void destroy(){

this.config = null;

}

}

Setelah ini buka lagi web.xml kemudian membuat mapping untuk filter, coding xmlnya seluruhnya sbb :

<?xml version=”1.0″ encoding=”UTF-8″?>

<web-app version=”2.4″ xmlns=”http://java.sun.com/xml/ns/j2ee&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”&gt;

<filter>

<filter-name>AuthenticationFilter</filter-name>

<filter-class>jeni3.servlet.filter.AuthenticationFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>AuthenticationFilter</filter-name>

<url-pattern>/admin/*</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>LoginFormServlet</servlet-name>

<servlet-class>jeni3.servlet.LoginFormServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>LoginServlet</servlet-name>

<servlet-class>jeni3.servlet.LoginServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>SuccessServlet</servlet-name>

<servlet-class>jeni3.servlet.SuccessServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>LogoutServlet</servlet-name>

<servlet-class>jeni3.servlet.LogoutServlet</servlet-class>

</servlet>

<servlet>

<servlet-name>AuthenticationFilter</servlet-name>

<servlet-class>jeni3.servlet.filter.AuthenticationFilter</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LoginFormServlet</servlet-name>

<url-pattern>/loginForm</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>SuccessServlet</servlet-name>

<url-pattern>/success</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>LogoutServlet</servlet-name>

<url-pattern>/logout</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>AuthenticationFilter</servlet-name>

<url-pattern>/AuthenticationFilter</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>

30

</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>

index.jsp

</welcome-file>

</welcome-file-list>

</web-app>

Setelah web.xmlnya ditambah maka perlu ditambahkan pada index.jsp yang berada pada Web Pages untuk hyperlink ke Administrator tambahannya sbb :

<tr>

<td width=”165″><a href=”./loginForm” class=”navText”>login</a></td>

</tr>

<tr>

<td width=”165″><a href=”./admin” class=”navText”>Administrator</a></td>

</tr>

<tr>

<td width=”165″><a href=”javascript:;” class=”navText”>destinations</a></td>

</tr>

Kemudian buatlah folder dengan nama admin pada Web Pages dan didalamnya diberi file index.jsp dengan coding sbb :

<%@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&#8221; prefix=”c”%>

–%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”

http://www.w3.org/TR/html4/loose.dtd”&gt;

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>

<title>AMIK PGRI KEBUMEN ONLINE</title>

</head>

<body>

<h1>Admin Page</h1>

<%

if (session.getAttribute(“user”) != null)

out.println(“Welcome <b> “+ session.getAttribute(“user”)+ “</b><br>”);

%>

Halaman khusus Admin<br>

<a href=”../logout”>Logout</a>

</body>

</html>

Kalau dirun mestinya hasilnya sbb :

Sehingga kalau anda buka langsung administrator maka keluar komentar

Selesai sudah membuat web untuk login dengan java. Akan lebih baik lagi kalau templatenya masuk disetiap halaman

Misal begini :

Dah jadi, kalau ada yang salah besok saya revisi lagi

Entry filed under: Object Oriented Programming. Tags: .

koneksi VB 6.0 dengan mysql odbc Membuat menu login dengan VB 6.0 dan MS Access

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


October 2008
M T W T F S S
« Sep   Nov »
 12345
6789101112
13141516171819
20212223242526
2728293031  

%d bloggers like this: