Quantcast
Channel: The Crazy Programmer
Viewing all articles
Browse latest Browse all 761

JSP Login and Logout System Example Using Session

$
0
0

In this tutorial you will learn how to make JSP login and logout system using session. I have used MySQL as a database in this example.

This system has following files.

index.jsp: It contains a login form which is displayed to user.

loginRequestHandler.jsp: When login form is submitted, this page handles the login request.

home.jsp: If the login details are correct then the user will be redirect to home page. It contain welcome message with a logout link.

logout.jsp: It invalidates the session and logout the user from system.

DBConnection.java: It handles connectivity with the database.

LoginBean.java: It is a bean class that has getter and setter methods.

LoginDAO.java: This class verifies the email and password from the database.

 

The database table that I have used has following structure.

Login Table

 

I have done proper session tracking in this example. If the user is not logged in and tries to open home.jsp page then he/she will be redirected to index.jsp page for login. If he/she is already logged in and tries to open index.jsp then he/she will be directly redirected to home.jsp.

Below I have shared the code for each of these files.

 

index.jsp

<html>
    <head>
        <title>Login System</title>
    </head>

    <body>
        <%
        String email=(String)session.getAttribute("email");
        
        //redirect user to home page if already logged in
        if(email!=null){
            response.sendRedirect("home.jsp");
        }

        String status=request.getParameter("status");
        
        if(status!=null){
        	if(status.equals("false")){
        		   out.print("Incorrect login details!");	           		
        	}
        	else{
        		out.print("Some error occurred!");
        	}
        }
        %>
    
        <form action="loginRequestHandler.jsp">
            <table cellpadding="5">
                <tr>
                    <td><b>Email:</b></td>
                    <td><input type="text" name="email" required/></td>
                </tr>

                <tr>
                    <td><b>Password:</b></td>
                    <td><input type="password" name="password" required/></td>
                </tr>

                <tr>
                    <td colspan="2" align="center"><input type="submit" value="Login"/></td>
                </tr>

            </table>
        </form>
    
    </body>
</html>

 

loginRequestHandler.jsp

<%@page import="com.LoginDAO"%>
<jsp:useBean id="loginBean" class="com.LoginBean" scope="session"/>
<jsp:setProperty name="loginBean" property="*"/>

<%
String result=LoginDAO.loginCheck(loginBean);

if(result.equals("true")){
	session.setAttribute("email",loginBean.getEmail());
	response.sendRedirect("home.jsp");
}

if(result.equals("false")){
	response.sendRedirect("index.jsp?status=false");
}

if(result.equals("error")){
    response.sendRedirect("index.jsp?status=error");
}

%>

 

home.jsp

<html>
    <head>
        <title>Login System</title>
    </head>

    <body>
        <%
        String email=(String)session.getAttribute("email");
        
        //redirect user to login page if not logged in
        if(email==null){
        	response.sendRedirect("index.jsp");
        }
        %>
    
        <p>Welcome <%=email%></p>    
        <a href="logout.jsp">Logout</a>
    </body>
</html>

 

logout.jsp

<%
session.invalidate();
response.sendRedirect("index.jsp");
%>

 

DBConnection.java

package com;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {
	static final String URL="jdbc:mysql://localhost:3306/";
	static final String DATABASE_NAME="test";
	static final String USERNAME="root";
	static final String PASSWORD="root";
	
	public static Connection getConnection(){
		Connection con=null;
		
		try{
			Class.forName("com.mysql.jdbc.Driver");
			con=DriverManager.getConnection(URL+DATABASE_NAME,USERNAME,PASSWORD);

		}catch(Exception e){
			e.printStackTrace();
		}
		
		return con;
	}
}

 

LoginBean.java

package com;

public class LoginBean {
	private String email;
	private String password;
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

 

LoginDAO.java

package com;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class LoginDAO {
	public static String loginCheck(LoginBean loginBean){
		String query="select * from login where email=? and password=?";
		
		try{
			Connection con=DBConnection.getConnection();
			PreparedStatement ps=con.prepareStatement(query);
			ps.setString(1,loginBean.getEmail());
			ps.setString(2,loginBean.getPassword());
			
			ResultSet rs=ps.executeQuery();
			
			if(rs.next()){
				return "true";
			}
			else{
				return "false";
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return "error";
	}
}

 

Screenshots

Index Page

Home Page

Comment below if you are facing difficulty to understand anything in above JSP login and logout system.

Happy Coding!! :) :)

 

The post JSP Login and Logout System Example Using Session appeared first on The Crazy Programmer.


Viewing all articles
Browse latest Browse all 761

Trending Articles