Question: I listed the codes for the following project below. The Login page loads normally; when I input the correct username and password in the Members
I listed the codes for the following project below. The Login page loads normally; when I input the correct username and password in the Members page, it doesn't take me to "Welcome to the Members Area" page with the logout hyperlink at the bottom. Instead, it just clears the username and password fields and nothing happens; when I try to load the Logout page, I get a 405 error and I'm stuck on how to bypass it and make the whole code work. Apache Tomcat is configured and working fine. Could you help? Everything needs to be done using Java Servlets. Thank you.

Login:
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 Login extends HttpServlet {
private final String USERNAME = "cysun";
private final String PASSWORD = "abcd";
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("
out.println("
Login
");out.println("
");out.println("");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals(USERNAME) && password.equals(PASSWORD)) {
HttpSession session = request.getSession();
session.setAttribute("user", username);
response.sendRedirect("Members");
} else {
response.sendRedirect("Login");
}
}
}
Members:
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("/Members")
public class Members extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session != null && session.getAttribute("loggedIn") != null && (boolean) session.getAttribute("loggedIn")) {
// User is logged in
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("
out.println("
Welcome to the Members Area
");out.println("
");out.println("");
} else {
// User is not logged in; redirect to login page
response.sendRedirect("Login");
}
}
}
Logout:
import java.io.IOException;
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("/Logout")
public class Logout extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
response.sendRedirect("Login");
}
}
In this lab you are going to implement basic login and logout operations using the Servlet Session Tracking API. 1. (30pt) Create a servlet Login: In doGet(), display a login form, e.g. Username: Password: Login In doPost(), check if the username and password match cysun and abcd, respectively. If the username and password are correct, set a session attribute user and redirect the user to the Members servlet; if not, redirect the user back to the login form. You may add additional accounts if you want, but cysun/abcd must be a valid account so we can test your code. 2. (20pt) Create a servlet Members. This servlet first checks if the session attribute user is set. If so, it displays the following: Welcome to the Members Area Logout Otherwise it redirects the user back to the login form. 3.(10pt) Clicking on Logout should take the user to a Logout servlet which invalidate the session (i.e. calling the invalidate() method in HttpSession), then redirect the user back to the login form.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
