Login Web Application using Java Mysql Servlet Part-2

This is the second part of the series. If you have missed the first part, check it out Login Web Application using java – part1
In this we are going to design a complete Login page using Java and Servlet with validation. If the user user already registered [refer part1] then user can login.
When user submits the data, we check whether user exists with particular mailid. After the user is redirected to home page.
1) Login Page
When user submits, data is passed to the Login Servlet
[code lang=”c”]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/login" method="post">
<table border="0">
<tr>
<th> Login Page </th></tr>
<tr>
<td>Email</td>
<td> <input type="email" name="mailid" value="" placeholder="enter mailid" required></td>
</tr>
<tr>
<td>Password</td>
<td> <input type="password" name="password" value="" placeholder="enter password" required></td>
</tr>
<tr><td colspan="1" align="center"><input type="submit" value="submit"></td></tr>
</table>
</form>
</body>
</html>[/code]
2) LoginServlet
We receive the data and Process the data in this Servlet. If the user registration is successful, he gets redirected to Home.jsp Session is created once loggin is successful.
[code lang=”java”]
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
@WebServlet("/login")
public class LoginServlet extends HttpServlet
{
private LoginDAO loginDao;
public void init()
{
loginDao = new LoginDAO();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String mailid = request.getParameter("mailid");
String password = request.getParameter("password");
//TODO regex validation for input
//TODO password salting/encryption
LoginBean loginBean = new LoginBean();
loginBean.setmailid(mailid);
loginBean.setPassword(password);
try {
boolean success = loginDao.validate(loginBean);
if(success)
{
response.sendRedirect("Home.jsp");
HttpSession session = request.getSession();
session.setAttribute("mailid", mailid);
}
else
{
PrintWriter out = response.getWriter();
out.println("You have entered wrong mailid or password");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
[/code]
3)LoginBean
[code lang=”java”]
public class LoginBean {
private String mailid;
private String password;
public void setmailid(String mailid)
{
this.mailid = mailid;
}
public void setPassword(String password)
{
this.password = password;
}
public String getmailid()
{
return mailid;
}
public String getPassword()
{
return password;
}
}
[/code]
4) LoginDAO (DataAccessObject)
The Data Access Object is basically an object or an interface that provides access to an underlying database. It checks whether the user is present in database or not.
[code lang=”java”]
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.db.*;
public class LoginDAO {
public boolean validate(LoginBean loginBean) throws Exception
{
DBConnection dbconnect = new DBConnection();
Connection connection = dbconnect.connect();
PreparedStatement preparedStatement = connection.prepareStatement("Select * from Users where mailid = ? and password = ?");
preparedStatement.setString(1, loginBean.getmailid());
preparedStatement.setString(2, loginBean.getPassword());
ResultSet rs = preparedStatement.executeQuery();
boolean isRowPresent = rs.next();
return isRowPresent;
}
}
[/code]
Home.jsp
This is the Home page of our Web application. User can logout if needed.
[code lang=”c”]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Home Page</title>
</head>
<body>
<%
String email=(String)session.getAttribute("mailid");
//redirect user to login page if not logged in
if(email==null){
response.sendRedirect("index.html");
}
%>
<p>Welcome <%=email%></p>
<a href="logout.jsp">Logout</a>
</body>
</html>
[/code]
Logut.jsp
[code lang=”c”]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();
response.sendRedirect("index.html");
%>
[/code]
Login Web Application using java Screenshots
Check my Github Repository for full code