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.
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
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.