Anda di halaman 1dari 7

Web Programming 2006

Menerapkan Session dan Cookie


Aplikasi Web Login
Kita akan mencoba membuat aplikasi web Login menggunakan web server Netbeans dan
JSP. Langkahlangkahnya :

1. Buatlah sebuah tabel bernama Login di Sql Server 2005 dengan kolom id, username dan
password. Pastikan kolom id bertipe integer dan identity serta password bertipe nvarchar(50).

2. Buat sebuah projek bernama Login dan buat file Login_Utama.jsp sebagai berikut, yang
menampilkan kotak input serta button submit, jika button submit ditekan akan dikirim form
login.jsp menggunakan method POST.
<%@include file="header.jsp"%>
<html><head>
<title>Form Login <%=nama_server%></title> </head>
<body bgcolor="yellow">
<form name="form1" method="post" action="login.jsp">
<font color=green><h1 align=center><strong >Server : <%=nama_server
%></strong></h1></font><br>
<h3> Mohon masukkan Nama dan Password Anda</h3><br>
Username : <input name="idk" type="text" id="idk"><br>
Password : <input name="sandi" type="password" id="sandi"><br>
<input type="submit" name="Submit" value="Login"><br>Mau ikutan ?<a
href="daftar.jsp">Daftar disini</a>
<%
String pesanerror=request.getParameter("pesanerror");
if(pesanerror==null)
{
pesanerror="";
}
%>
<%=pesanerror%>
</form>
</body>
<h5>Copyright Binus Students (Aulia's group) and Www.Widodo.Com 2007</h5>
</html>
Pada program diatas, karena kita menggunakan sintask sql, maka paket java.sql.* harus
disertakan. Program juga menyertakan file header.jsp yang berisi informasi koneksi database
menggunakan pernyataan :
<%@include file="header.jsp"%>
Program juga akan menampilkan nama server kita dengan pernyataan :
<h1 align="center"><strong>Server < %= nama_server%></h1>

Widodo Budiharto D2637

Web Programming 2006


2. Setelah itu, buat form login.jsp untuk melakukan proses login ke database sql server.
<%@include file="header.jsp" %>
<%@ page import="java.sql.*" errorPage=error.jsp%>
<%@include file="buatkoneksi.jsp" %>
<%
String idk=request.getParameter("idk");
if(idk==null)
idk="";
String sandi=request.getParameter("sandi");
if(sandi==null)
sandi="";
hasil_query=statement_sql.executeQuery("select * from login");
String idk_sql=null;
String sandi_sql=null;
boolean login=false;
while(hasil_query.next())
{
idk_sql=hasil_query.getString("username");
sandi_sql=hasil_query.getString("password");
if(idk.equals(idk_sql) && sandi.equals(sandi_sql))
{
session.setAttribute("idk", idk);//buat session
login=true;//set jadi true
break;
}
}
%>
<%
if(login)
{
%>
<jsp:forward page="main.jsp">
<jsp:param name="link" value="home" />
</jsp:forward>
<%
}
else
{
%>
<jsp:forward page="main.jsp" >
<jsp:param name="pesanerror" value="Anda gagal, periksa username dan password anda." />
</jsp:forward>
<%
}
%>
<%
statement_sql.close();
koneksi_sql.close();
%>
Pada program diatas, biasanya untuk menampilkan pesan error jika terjadi error pada dokumen,
digunakan property errorPage yang akan memanggil file error.jsp buatan kita. Program diatas

Widodo Budiharto D2637

Web Programming 2006


akan membandingkan apakah usename dan password yang dimasukkan user ada di table user
denga pernyataan sebagai berikut :
hasil_query=statement_sql.executeQuery("select * from login");
3. Setelah itu, anda harus membuat file pendukung untuk koneksi yang terdiri dari file header.jsp
dan buatkoneksi.jsp dalam bentuk modul sehingga dapat digunakan oleh banyak form sebagai
berikut :
header.jsp
<%
String driver_sql = "sun.jdbc.odbc.JdbcOdbcDriver"; //driver
String nama_server="widodolaptop"; // Nama website
String namadb="java"; // database yang digunakan
String user_sql="sa"; // user untuk sql server
String pass_sql="password_anda"; // password untuk sql server Anda
java.util.Date tanggal = new java.util.Date();
int tgl = tanggal.getDate();
int bln = tanggal.getMonth()+1;
int thn = tanggal.getYear()+1900;
int jam = tanggal.getHours();
String hari;
if(jam <= 3 || jam >= 20) hari = "Malam";
else if(jam > 3 || jam < 11) hari ="Pagi";
else if(jam >= 11 || jam <= 16) hari = "Siang";
else hari = "Sore";
%>
buatkoneksi.jsp :
<%
Class.forName(driver_sql);
String urldb="jdbc:odbc:Kopi";
Connection koneksi_sql=DriverManager.getConnection(urldb, user_sql, pass_sql);
Statement statement_sql=koneksi_sql.createStatement();
ResultSet hasil_query=null;
Statement statement_sql2=koneksi_sql.createStatement();
ResultSet hasil_query2=null;
%>
Kode diatas akan membuat koneksi ke database dan menggunakan objek tanggal untuk
mengecek tanggal dari komputer yang sedang mengakses aplikasi tersebut.
1.

Buatlah form main.jsp untuk menampilkan status login Anda

<%@ page import="java.util.*"%>


<%@ page import="java.sql.*"%>
<%@include file="header.jsp"%>
<%@include file="buatkoneksi.jsp" %>
<%
String idk=(String)session.getAttribute("idk");
if(idk==null)

Widodo Budiharto D2637

Web Programming 2006


{
%>
<jsp:forward page="Login_Utama.jsp" >
<jsp:param name="pesanerror" value="Anda belum login, silahkan login dahulu." />
</jsp:forward>
<%
}
else
{
%>
<html>
<head><title>Form Utama Login e-Banking</title></head>
<body>
<h2> Selamat <%=idk%> , Anda telah sukses Login</h2>
</body>
</html>
<%
}
%>

5.

Jika telah selesai, coba anda jalankan aplikasi dimulai dari Login_Utama.jsp :

Tampilan form input HTML


6. Jika anda mengklik button Submit maka form akan dipanggil dengan tampilan sebagai berikut :

Widodo Budiharto D2637

Web Programming 2006

Tampilan dari form main.jsp


Contoh Session lainnya:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession(true);
// print info session
Date created = new Date(session.getCreationTime());
Date accessed = new Date(session.getLastAccessedTime());
out.println("ID " + session.getId());
out.println("Created: " + created);
out.println("Last Accessed: " + accessed);
// set session info if needed
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
// print isi session
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println(name + " = " + value);
}
}
}

Widodo Budiharto D2637

Web Programming 2006


Contoh cookie:
<%@ page language="java" %>
<html>
<head>
<title>Cookie Input Form</title>
</head>
<body>
<form method="post" action="setcookie.jsp">
<p><b>Enter Your Name: </b><input type="text"
name="username"><br>
<input type="submit" value="Submit">
</form>
</body>
<%@ page language="java" import="java.util.*"%>
<%
String username=request.getParameter("username");
if(username==null) username="";
Date now = new Date();
String timestamp = now.toString();
Cookie cookie = new Cookie ("username",username);
cookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie);
%>
<html>
<head>
<title>Cookie Saved</title>
</head>
<body>
<p><a href="showcookievalue.jsp">Next Page to view the cookie value</a><p>
</body>
<%@ page language="java" %>
<%
String cookieName = "username";
Cookie cookies [] = request.getCookies ();
Cookie myCookie = null;
if (cookies != null)
{
for (int i = 0; i < cookies.length; i++)
Widodo Budiharto D2637

Web Programming 2006


{
if (cookies [i].getName().equals (cookieName))
{
myCookie = cookies[i];
break;
}
}
}
%>
<html>
<head>
<title>Show Saved Cookie</title>
</head>
<body>
<%
if (myCookie == null) {
%>
No Cookie found with the name <%=cookieName%>
<%
} else {
%>
<p>Welcome: <%=myCookie.getValue()%>.
<%
}
%>
</body>

Widodo Budiharto D2637

Anda mungkin juga menyukai