Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Java Servlets with tomcat Implement a \"remember me\" function on the provided L

ID: 3872876 • Letter: J

Question

Java Servlets with tomcat

Implement a "remember me" function on the provided Login.java code through the creation of a checkbox.

When a Student checks the Remember Me checkbox, your application should create a new cookie named "student". The value of the cookie should be the Sha256 hash (as a HEX string ) of the student's ID. When a Student visits your Login page, you should automatically check for the existence of the student cookie. If the cookie exists, you should search all Students in your database (ArrayList), and compare the cookie value against the hash of each student's ID. If there is a match, do not display the login form to the Student. Instead, consider the student logged in (as if they submitted valid credentials) and automatically redirect them to the member's only area (MyProfile). When a Student logs out of your site, you should destroy the student cookie, if it exists, along with invalidating the current session and redirecting the Student back to Login. *The credentials to login to the page are "cysun" for the username and "abcd" for the password*

Login.java

" ); out.println( "Login" ); out.println( "

" ); out.println( "

" ); out.println( "Username:
" ); out.println( "Password:
" ); out.println( "
" ); out.println( "

" ); out.println( "

" ); } protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { if( request.getParameter( "username" ).equals( "cysun" ) && request.getParameter( "password" ).equals( "abcd" ) ) { request.getSession().setAttribute( "user", "cysun" ); response.sendRedirect( "Members" ); } else response.sendRedirect( "Login" ); } }

Members.java

" ); out.println( "Member-Only Area" ); out.println( "" ); out.println( "

Member-Only Area!

" ); out.println( "Logout" ); out.println( "" ); } protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { doGet( request, response ); } }

Logout.java

Explanation / Answer

There are 7 files required for this application:-
index.html
link.html
login.html
LoginServlet.java
LogoutServlet.java
ProfileServlet.java
web.xml

1.index.html:-
<!DOCTYPE html>  
<html>  
<head>  
<meta charset="ISO-8859-1">  
<title>Servlet Login Example</title>  
</head>  
<body>  
  
<h1>Login App </h1>  
<a href="login.html">Login</a>|  
<a href="LogoutServlet">Logout</a>|  
<a href="ProfileMembersServlet">Profile</a>  
  
</body>  
</html>  

2.link.html:-

<a href="login.html">Login</a> |  
<a href="LogoutServlet">Logout</a> |  
<a href="ProfileMembersServlet">Profile</a>  
<hr>  

3.login.html:-

<form action="LoginServlet" method="post">  
Name:<input type="text" name="name"><br>  
Password:<input type="password" name="password"><br>  
<input type="submit" value="login">  
</form>  

4.LoginServlet.java:-

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;  
public class LoginServlet extends HttpServlet {  
protected void doPost(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
response.setContentType("text/html");  
PrintWriter out=response.getWriter();  
request.getRequestDispatcher("link.html").include(request, response);  
  
String name=request.getParameter("name");  
String password=request.getParameter("password");  
  
if(password.equals("admin123")){  
out.print("Welcome, "+name);  
HttpSession session=request.getSession();  
session.setAttribute("name",name);  
}  
else{  
out.print("Sorry, username or password error!");  
request.getRequestDispatcher("login.html").include(request, response);  
}  
out.close();  
}  
}  

5.LogoutServlet.java:-

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;  
public class LogoutServlet extends HttpServlet {  
protected void doGet(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
response.setContentType("text/html");  
PrintWriter out=response.getWriter();  
  
request.getRequestDispatcher("link.html").include(request, response);  
  
HttpSession session=request.getSession();  
session.invalidate();  
  
out.print("You are successfully logged out!");  
  
out.close();  
}  
}  

6.ProfileMembersServlet.java:-

import java.io.IOException;  
import java.io.PrintWriter;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;  
public class ProfileMembersServlet extends HttpServlet {  
protected void doGet(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  
response.setContentType("text/html");  
PrintWriter out=response.getWriter();  
request.getRequestDispatcher("link.html").include(request, response);  
  
HttpSession session=request.getSession(false);  
if(session!=null){  
String name=(String)session.getAttribute("name");  
  
out.print("Hello, "+name+" Welcome to Profile");  
}  
else{  
out.print("Please login first");  
request.getRequestDispatcher("login.html").include(request, response);  
}  
out.close();  
}  
}  

7.web.xml:-

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  
<servlet>  
<description></description>  
<display-name>LoginServlet</display-name>  
<servlet-name>LoginServlet</servlet-name>  
<servlet-class>LoginServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
<servlet-name>LoginServlet</servlet-name>  
<url-pattern>/LoginServlet</url-pattern>  
</servlet-mapping>  
<servlet>  
<description></description>  
<display-name>ProfileMembersServlet</display-name>  
<servlet-name>ProfileMembersServlet</servlet-name>  
<servlet-class>ProfileMembersServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
<servlet-name>ProfileMembersServlet</servlet-name>  
<url-pattern>/ProfileMembersServlet</url-pattern>  
</servlet-mapping>  
<servlet>  
<description></description>  
<display-name>LogoutServlet</display-name>  
<servlet-name>LogoutServlet</servlet-name>  
<servlet-class>LogoutServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
<servlet-name>LogoutServlet</servlet-name>  
<url-pattern>/LogoutServlet</url-pattern>  
</servlet-mapping>  
</web-app>  

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote