<html>
<head><title>Login</title></head>
<body>
<h2>Login Page</h2>
<form action="JdbcLogin" method="post">
Username: <input type="text" name="username" /><br/>
Password: <input type="password" name="password" /><br/>
<input type="submit" value="Login" />
</form>
<%
String error = (String)request.getAttribute("error");
if (error != null) {
%>
<p style="color:red;"><%= error %></p>
<% } %>
</body>
</html>
login page for the test page
package test;
import java.sql.*;
public class DBConnection {
public static Connection getConnection() throws Exception {
String url = "jdbc:postgresql://localhost:5432/demo";
String user = "postgres";
String pass = "123";
Class.forName("org.postgresql.Driver");
return DriverManager.getConnection(url, user, pass);
}
}
DataBase connection
package test;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;
@WebServlet("/jdbchome")
public class HomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws
IOException {
HttpSession session = req.getSession(false);
if (session != null && session.getAttribute("username") != null) {
res.setContentType("text/html");
res.getWriter().println("<h2>Welcome, " +
session.getAttribute("username") + "</h2>");
res.getWriter().println("<a href='Jdbclogout'>Logout</a>");
} else {
res.sendRedirect("testlogin.jsp");
}
}
}
home page
package test;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.sql.*;
@WebServlet("/JdbcLogin")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws
IOException, ServletException {
String username = req.getParameter("username").trim();
String password = req.getParameter("password").trim();
System.out.println("Login attempt for: " + username);
try (Connection conn = DBConnection.getConnection()) {
PreparedStatement ps = conn.prepareStatement("SELECT * FROM userlogin
WHERE userid=? AND password=?");
ps.setString(1, username);
ps.setString(2, password);
System.out.println("Executing: " + ps.toString());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.println("Login successful for: " + username);
HttpSession session = req.getSession();
session.setAttribute("username", username);
res.sendRedirect("jdbchome");
} else {
System.out.println("Login failed for: " + username);
req.setAttribute("error", "Invalid username or password");
RequestDispatcher rd = req.getRequestDispatcher("testlogin.jsp");
rd.forward(req, res);
}
} catch (Exception e) {
e.printStackTrace();
req.setAttribute("error", "Database error. Please try again.");
RequestDispatcher rd = req.getRequestDispatcher("testlogin.jsp");
rd.forward(req, res);
}
}
}
login.java page
package test;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import java.io.IOException;
@WebServlet("/Jdbclogout")
public class LogoutServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws
IOException {
HttpSession session = req.getSession(false);
if (session != null) {
session.invalidate();
}
res.sendRedirect("testlogin.jsp");
}
}
logout page