The whole program layout in the eclipse
The front end including index.jsp, login.jsp, memberArea.jsp and the back end including two servlet to handle login and logout function
index.jsp
This page will has one Login button, click it will direct user to the page to enter the username and password
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Home</title>
</head>
<body>
<a href="<%= request.getContextPath()%>/SiteController?action=login">Login</a>
</body>
</html>
login.jsp
This page will get the input from user and login the member page
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<form action="<%= request.getContextPath()%>/SiteController" method="post">
Username: <input type="text" name="username" ><br/>
Password: <input type="password" name="password"><br/>
<input type="submit" value="submit">
</form>
</body>
</html>
memberArea.jsp page
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Member Area</title>
</head>
<body>
<%
String username = null, sessionID = null;
if(request.getSession().getAttribute("username") == null){
response.sendRedirect("login.jsp");
}else{
username = request.getSession().getAttribute("username").toString();
sessionID = request.getSession().getId();
}
%>
Username:
<%=username%><br /> Current session:
<%=sessionID%><br /> memberArea!!
<form action="<%= request.getContextPath()%>/MemberAreaController" method="get">
<input type="hidden" name="action" value="destroy">
<input type="submit" value="logout">
</form>
</body>
</html>
Servlet SiteController
This servlet is used to control login at the start of the program and after user enter their usernames and passwords
package org.studyeasy.servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class SiteController
*/
@WebServlet("/SiteController")
public class SiteController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SiteController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
switch (action) {
case "login":
request.getRequestDispatcher("login.jsp").forward(request, response);
break;
default:
break;
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username.equals("studyeasy") && password.equals("Love")) {
//Invalidating session if any
request.getSession().invalidate();
HttpSession newSession = request.getSession(true);
newSession.setMaxInactiveInterval(300);
newSession.setAttribute("username", username);
response.sendRedirect("memberArea.jsp");
}else {
response.sendRedirect("login.jsp");
}
}
}
Servlet MemberAreaController
This servlet is used to logout
package org.studyeasy.servlets;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class MemberAreaController
*/
@WebServlet("/MemberAreaController")
public class MemberAreaController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MemberAreaController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
switch (action) {
case "destroy":
request.getSession().invalidate();
response.sendRedirect("login.jsp");
break;
default:
response.sendRedirect("google.com");
break;
}
}
}
The following is the whole program from start to end