Step8- Session Management + code

Basic concept of session- store some data of client temporarily which should be available until client destroy it.

Session management definition- It’s a mechanism used by web container to save state of client.

Session management includes-
1- session (interface)
2- cookies(class)
3- url rewriting
4- Hidden form field

1-Session-
step 1- creation of sessions-

(i)HttpSession ses=request.getsession();

-Returns existing session object else creates new session object.

(ii)HttpSession ses=request.getsession(true);

-Always returns existing session object.

(iii)HttpSession ses=request.getsession(false);

-Always creates new session object.

step 2- Initialization of servlet-

ses.setAttribute(key, value);

Note- Remove Attribute-
ses.removeAttribute(key);

step 3- Access of session-

ses.getAttribute(key);

4- Deletion of session-

ses.invalidate ();

Example 7- Wep app to create session at correct login, get session data from at profile page, and then logout to delete session.

ezgif-2-13ff83d30937

Project 5 files-

1-index.html(inside WebContent)

2-Login.java(inside pacage=’ab’)

3-Profile.java(inside pacage=’ab’)

4-profile.html(inside WebContent)

5-Logout.java(inside pacage=’ab’)

1-index.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
<form action=”a”>
email
<input type=”text” name=”e”>
password
<input type=”password” name=”p”>
<input type=”submit”>
<a href=”b”>View Profile</a>
</body>
</html>

 

2-Login.java(servlet)


package ab;

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/a")
public class Login extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String E1="mrjava@gmail.com";
String P1="java123";

String E2=request.getParameter("e");
String P2=request.getParameter("p");

if(E1.equals(E2)&&P1.equals(P2)){

HttpSession ses=request.getSession();
ses.setAttribute("mail", E2);
response.sendRedirect("b");

}else{
response.sendRedirect("index.html");
}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);
}

}

3-Profile.java(servlet)


package ab;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/b")
public class Profile extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out=response.getWriter();
HttpSession ses=request.getSession();
String m=(String) ses.getAttribute("mail");

if(m!=null){
response.sendRedirect("profile.html");
}else{
RequestDispatcher rd=request.getRequestDispatcher("index.html");
rd.include(request, response);
out.println("You are not logged in.");
}
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}

4-profile.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
Welcome user
<a href=”c”>Logout(remove the session)</a>
<a href=”index.html”>Go back(Keep the session)</a>
</body>
</html>

5-Logout.java(servlet)


package ab;

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;

/**
 * Servlet implementation class Logout
 */
@WebServlet("/c")
public class Logout extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Logout() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

HttpSession ses=request.getSession();
ses.invalidate();
response.sendRedirect("index.html");
}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

2- Cookies-

-cookie is a class.
-It stores textual data at client side.
-Less secure than session.

step 1- creation of cookie-
Cookie ck= new cookie(key, value);

step 2- send to the client side(browser)-
response. addCookie(ck);

step 3- access the cookie-
Cookie[] c= request.getCookies();

step 4- deletion of cookie-
ck.setAge(0);
response.addCookie(ck);

Example 8- Wep app to create cookie and add into browser at correct login, get cookies data from at profile page, and then logout to delete cookie.

output-ckks

Project Structure-

cks

5 files-

1-index.html(inside WebContent)

2-Login.java(inside pacage=’ab’)

3-Profile.java(inside pacage=’ab’)

4-profile.html(inside WebContent)

5-Logout.java(inside pacage=’ab’)

1-index.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
<form action=”login”>
email
<input type=”text” name=”e”>
password
<input type=”password” name=”p”>
<input type=”submit”>
<a href=”profile”>View Profile</a>
</body>
</html>

2-Login.java(servlet)

package ab;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/login")
public class Login extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String E1="mrjava@gmail.com";
String P1="java123";
String E2=request.getParameter("e");
String P2=request.getParameter("p");
if(E1.equals(E2) && P1.equals(P2)){
Cookie cookie = new Cookie("mail",E2);
response.addCookie(cookie);
response.sendRedirect("b");
}else{
response.sendRedirect("index.html");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response); } }

3-Profile.java(servlet)


package ab;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/profile")
public class Profile extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 PrintWriter out=response.getWriter();

 Cookie[] ck2=request.getCookies();
 System.out.println(ck2);

 if(ck2!=null){
 response.sendRedirect("profile.html");
 }else{
 RequestDispatcher rd=request.getRequestDispatcher("index.html");
 rd.include(request, response);
 out.println("You are not logged in.");
 }
 }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}

4-profile.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
Welcome user
<a href=”logout”>Logout(remove the session)</a>
<a href=”index.html”>Go back(Keep the session)</a>
</body>
</html>

5-Logout.java(servlet)


package ab;

import java.io.*;
import javax.servlet.http.*;
@WebServlet("/logout")
public class Logout extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 Cookie[] ck2=request.getCookies();
 for (Cookie c : ck2) {
 c.setMaxAge(0);
 response.addCookie(c);
 }
 response.sendRedirect("index.html");
 }

3- Url Rewriting-
Step 1- add “?” At the end of url
Step 2 -add data in following format-
Attribute=value
Step 3- separate these attribute and value with “&” symbol

Example 9- Web app to add data with url and get it on next servlet.

output-

uul

Project Structure-

urrl

2 files-

1-index.html(inside WebContent)

2-A.java(inside pacage=’ab’)

1-index.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
<a href=”first?name=mr.Java&email=a@a.com”>Click here</a>
</body>
</html>

2-A.java(servlet)


package ab;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/first")
public class A extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String s1=request.getParameter("name");
String s2=request.getParameter("email");

PrintWriter out=response.getWriter();
out.println(s1);
out.println(s2);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

}

4- hidden form field-
Step1- create input box with type=hidden
Step2- assign it’s value
Step3- get value of input box on next servlet.

Example 10- Wep app get data from hidden input box on next servlet.

output-

hidd

Project Structure-

exhid

2 files-

1-index.html(inside WebContent)

2-A.java(inside pacage=’ab’)

1-index.html

<!DOCTYPE html>
<html>
<head>
<meta charset=”ISO-8859-1″>
<title>Insert title here</title>
</head>
<body>
<form action=”first”>
<input type=”text” name=”a”>
</br>
<input type=”password” name=”b”>
<input type=”hidden” name=”c” value=”Surprise”>
<input type=”submit”>
</body>
</html>

2-A.java(servlet)


package ab;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet("/first")
public class A extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String s1=request.getParameter("a");
String s2=request.getParameter("b");
String s3=request.getParameter("c");

PrintWriter out=response.getWriter();
out.println(s1);
out.println(s2);
out.println(s3);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

}