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.

In this lab you are going to implement basic login and logout

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("

Login");

out.println("

Login

");

out.println("

");

out.println("Username:
");

out.println("Password:
");

out.println("");

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("

Members");

out.println("

Welcome to the Members Area

");

out.println("

");

out.println("");

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!