Context variable can access thorough the entire application. Shared across servlets and users .But session object can't be shared across the user . so it the is an advantage of the context variable over session.
Now lets consider how context can be created and use the same across the entire application:
package servlets.first;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
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 SessionTest
*/
@WebServlet(description = "Write data to session and read data from session and from context as well", urlPatterns = { "/SessionTest" })
public class SessionTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
String uname=request.getParameter("uname");
PrintWriter out=response.getWriter();
HttpSession session =request.getSession();// Creation of session object
ServletContext context=request.getServletContext();//creation of context object
if(uname !="" && uname !=null){
session.setAttribute("Sname",uname);
context.setAttribute("Cname",uname);
}
out.println("Username From session:"+ (String)session.getAttribute("Sname")+"<BR>");//Read session data
out.println("Username From Context:"+ (String)context.getAttribute("Cname")+"<BR>");//Read context data
out.println("Username:"+uname);
}
}

Comments
Post a Comment