The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.
This interface allows servlets to
View and manipulate information about a session, such as the session identifier, creation time, and last accessed time
Bind objects to sessions, allowing user information to persist across multiple user connections
Creating new Session
HttpSession session = request.getSession(true);
true : Use existing session if exist or create one new session
false : Use existing session if exist or return null
or
HttpSession session = request.getSession(); // same as request.getSession(true);
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Sample program using Http Session </h1>
<form action="Login" method="post">
User name : <input type="text" name="uname"><br><br>
Password : <input type="password" name="pass"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
LoginController.java
package com.candidjava.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class Session
*/
public class LoginController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String un = request.getParameter("uname");
String pwd = request.getParameter("pass");
if (un.equals("candidjava")) {
out.print("Welcome, " + un);
HttpSession session = request.getSession(true); // reuse existing
// session if exist
// or create one
session.setAttribute("user", un);
session.setMaxInactiveInterval(30); // 30 seconds
response.sendRedirect("home.jsp");
} else {
RequestDispatcher rd = request.getRequestDispatcher("login.html");
out.println("<font color=red>Either user name or password is wrong.</font>");
rd.include(request, response);
} // TODO Auto-generated method stub
}
}
home.jsp
<%@ 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>Insert title here</title>
</head>
<body>
Keep the page ideal for 30 seconds
<br> And try reloading the page
<br> you will be redirected to home page automatically
<br>
<%
if (session != null) {
if (session.getAttribute("user") != null) {
String name = (String) session.getAttribute("user");
out.print("Hello, " + name + " Welcome to ur Profile");
} else {
response.sendRedirect("login.html");
}
}
%>
</br>
</br>
<form action="Logout" method="post">
<input type="submit" value="Logout">
</form>
</body>
</html>
LogoutController.java
package com.candidjava.servlet;
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;
/**
* Servlet implementation class LogoutSession
*/
public class LogoutController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("thanq you!!, Your session was destroyed successfully!!");
HttpSession session = request.getSession(false);
// session.setAttribute("user", null);
session.removeAttribute("userr");
session.getMaxInactiveInterval();
}
}