Log in Example Using Stored Procedure
Java - MySQL - Eclipse
Database Table: sec_login
mysql> desc sec_login; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | username | varchar(20) | YES | | NULL | | | password | varchar(30) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+ 2 rows in set (0.05 sec) mysql>
Stored Procedure: checklogin()
delimiter // create procedure checklogin(in user varchar(20), in pass varchar(30)) begin select * from sec_login where username=user AND password=pass; end // delimiter ;
LoginDao.java
Download project: SecureLoginUsingStoredProcedure
package com.login.dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import com.login.model.Login; import com.login.utilities.DBUtilities; public class LoginDao { public boolean checkLogin(Login login) throws SQLException { Connection con=null; CallableStatement callableStatement = null; try{ con=DBUtilities.getConnection(); String dbCheckLogin = "{call checklogin(?,?)}"; callableStatement = con.prepareCall(dbCheckLogin); callableStatement.setString(1, login.getUsername()); callableStatement.setString(2, login.getPassword()); ResultSet rs= callableStatement.executeQuery(); if(rs.next()) { return true; } else { return false; } } finally{ DBUtilities.closeConnection(con); } } }LoginManagement.java
package com.login.model; import java.sql.SQLException; import com.login.dao.LoginDao; public class LoginManagement { LoginDao logindao= new LoginDao(); public boolean checkLogin(Login login) throws SQLException { return logindao.checkLogin(login); } }LoginController.java
package com.login.controller; import java.io.IOException; import java.sql.SQLException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.login.model.Login; import com.login.model.LoginManagement; /** * Servlet implementation class LoginController */ @WebServlet("/LoginController") public class LoginController extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginController() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub LoginManagement loginManagement = new LoginManagement(); RequestDispatcher rd= null; String action=request.getParameter("actiontype"); if(action.equals("Login")) { String username=request.getParameter("username"); String password= request.getParameter("password"); Login login= new Login(username, password); boolean result=false; try { result = loginManagement.checkLogin(login); if(result) { request.setAttribute("user", login.getUsername()); rd=request.getRequestDispatcher("Home.jsp"); rd.forward(request, response); return; } else { request.setAttribute("err", "err"); rd=request.getRequestDispatcher("Login.jsp"); rd.forward(request, response); return; } } catch (SQLException e) { request.setAttribute("err", "err"); rd=request.getRequestDispatcher("Login.jsp"); rd.forward(request, response); return; } } } }Login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Log in</title> <script type="text/javascript"> function validateForm() { var x=document.getElementById("username"); if (x.value=="") { document.getElementById('username_innermsg').innerHTML="Please enter the Username."; x.focus(); return false; } document.getElementById('username_innermsg').innerHTML=''; var x=document.getElementById("password"); if (x.value=="") { document.getElementById('password_innermsg').innerHTML="Please enter the Password."; x.focus(); return false; } document.getElementById('password_innermsg').innerHTML=''; } </script> </head> <body> <center> <h1>Log in</h1> <form action="LoginController" method="post" onsubmit="return validateForm();"> <input type="hidden" name="actiontype" value="Login"> <table > <tr> <td>Username :</td><td><input type="text" name="username" id="username"></td><td width="200px"> <i style="color: red;" id="username_innermsg"></i></td> </tr> <tr> <td>Password :</td><td><input type="password" name="password" id="password"></td><td width="200px"> <i style="color: red;" id="password_innermsg"></i></td> </tr> <tr><td></td><td ><input type="submit" value="Login"><input type="reset" value="Cancel"></td><td ></td> </tr> </table> </form> <i style="color: red;"> <% String er=null; try{ er= (String)request.getAttribute("err"); //out.print(er); if(er.equals("err")) { out.print("Username/Password not correct"); } } catch (Exception e){ } %> </i> </center> </body> </html>
Download project: SecureLoginUsingStoredProcedure