Aim: A user validation web application, where the user submits the login name and password to the server. The name and password are checked against the data already available in Database and if the data matches, a successful login page is returned. Otherwise a failure message is shown to the user

login.html

<form name="login" method="post" action="sls">
    <table width="370" border="1" align="center" style="background: silver;">
        <tr height="25">
            <th colspan="4" align="center">User Login</th>
        </tr>
        <tr>
            <td>User Name</td>
            <td><input type="text" name="uname"></td>
        </tr>
        <tr>
            <td>Password</td>
            <td><input type="password" name="pwd"></td>
        </tr>
        <tr align="center">
            <td align="center" colspan="2">
                <input type="submit" name="ok" value="Submit">
            </td>
        </tr>
    </table>
</form>
        
Servlet Implementation (StudentLoginServlet.java)


package pres;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StudentLoginServlet extends HttpServlet {
    private Connection con = null;

    public void init() throws ServletException {
        try {
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mrecw", "root", "naresh");
            System.out.println("Database connection established");
        } catch (Exception e) {
            System.out.println("Database connection failed");
            e.printStackTrace();
        }
    }

    public void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setContentType("text/html");
        Statement statement = null;
        ResultSet resultSet = null;
        String uname = req.getParameter("uname");
        String pwd = req.getParameter("pwd");

        try {
            PrintWriter out = resp.getWriter();
            statement = con.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM login WHERE uname='" + uname + "' AND pwd='" + pwd + "'");
            
            if (rs.next()) {
                RequestDispatcher rd = req.getRequestDispatcher("home.jsp");
                rd.forward(req, resp);
            } else {
                RequestDispatcher rd = req.getRequestDispatcher("login.html");
                rd.include(req, resp);
                out.println("Wrong credentials");
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("Database query failed");
        } finally {
            try {
                if (statement != null) statement.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
        
Home Page (home.jsp)


<h2>Welcome to Home Page - You are successfully logged in</h2><br/>
<a href="login.html">Back</a>
        
Web.xml Configuration


<web-app>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>sls</servlet-name>
        <servlet-class>pres.StudentLoginServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>sls</servlet-name>
        <url-pattern>/sls</url-pattern>
    </servlet-mapping>
</web-app>
        
Output:

login.htmlwelcome.html

;