Java by API/javax.servlet.http/HttpSession

Материал из Java эксперт
Перейти к: навигация, поиск

bindings.listener

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; public class SessionBindings extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/plain");
   PrintWriter out = res.getWriter();
   // Get the current session object, create one if necessary
   HttpSession session = req.getSession();
   // Add a CustomBindingListener
   session.setAttribute("bindings.listener", new CustomBindingListener(getServletContext()));
   out.println("This page intentionally left blank");
 }

} class CustomBindingListener implements HttpSessionBindingListener {

 ServletContext context;
 public CustomBindingListener(ServletContext context) {
   this.context = context;
 }
 public void valueBound(HttpSessionBindingEvent event) {
   context.log("[" + new Date() + "] BOUND as " + event.getName() + " to "
       + event.getSession().getId());
 }
 public void valueUnbound(HttpSessionBindingEvent event) {
   context.log("[" + new Date() + "] UNBOUND as " + event.getName() + " from "
       + event.getSession().getId());
 }

}

      </source>
   
  
 
  



HttpSession: getAttributeNames()

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
out.println("

"); out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: getAttribute(String key)

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
   out.println("<P>");
out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: getCreationTime()

   <source lang="java">

import java.io.IOException; import java.util.Date; 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 ManualInvalidate extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   HttpSession session = req.getSession();
   // Invalidate the session if it"s more than a day old or has been
   // inactive for more than an hour.
   if (!session.isNew()) { // skip new sessions
     Date dayAgo = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
     Date hourAgo = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
     Date created = new Date(session.getCreationTime());
     Date accessed = new Date(session.getLastAccessedTime());
     if (created.before(dayAgo) || accessed.before(hourAgo)) {
       session.invalidate();
       session = req.getSession(); // get a new session
     }
   }
 }

}

      </source>
   
  
 
  



HttpSession: getId()

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
   out.println("<P>");
out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: getLastAccessedTime()

   <source lang="java">

import java.io.IOException; import java.util.Date; 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 ManualInvalidate extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   HttpSession session = req.getSession();
   // Invalidate the session if it"s more than a day old or has been
   // inactive for more than an hour.
   if (!session.isNew()) { // skip new sessions
     Date dayAgo = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
     Date hourAgo = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
     Date created = new Date(session.getCreationTime());
     Date accessed = new Date(session.getLastAccessedTime());
     if (created.before(dayAgo) || accessed.before(hourAgo)) {
       session.invalidate();
       session = req.getSession(); // get a new session
     }
   }
 }

}

      </source>
   
  
 
  



HttpSession: getLastAccessedTime() (2)

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
   out.println("<P>");
out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: getMaxInactiveInterval()

   <source lang="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 SessionTimer extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   out.println("<HTML><HEAD><TITLE>SessionTimer</TITLE></HEAD>");
out.println("<BODY>

Session Timer

");
   out.println("The previous timeout was " + session.getMaxInactiveInterval());
   out.println("
"); session.setMaxInactiveInterval(2 * 60 * 60); // two hours out.println("The newly assigned timeout is " + session.getMaxInactiveInterval()); out.println("</BODY></HTML>"); }

}

      </source>
   
  
 
  



HttpSession: invalidate()

   <source lang="java">

import java.io.IOException; import java.util.Date; 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 ManualInvalidate extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   HttpSession session = req.getSession();
   // Invalidate the session if it"s more than a day old or has been
   // inactive for more than an hour.
   if (!session.isNew()) { // skip new sessions
     Date dayAgo = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
     Date hourAgo = new Date(System.currentTimeMillis() - 60 * 60 * 1000);
     Date created = new Date(session.getCreationTime());
     Date accessed = new Date(session.getLastAccessedTime());
     if (created.before(dayAgo) || accessed.before(hourAgo)) {
       session.invalidate();
       session = req.getSession(); // get a new session
     }
   }
 }

}

      </source>
   
  
 
  



HttpSession: isNew()

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
   out.println("<P>");
out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: setAttribute(String key, Object value)

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Enumeration; 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 SessionSnoop extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   Integer count = (Integer) session.getAttribute("count");
   if (count == null)
     count = new Integer(1);
   else
     count = new Integer(count.intValue() + 1);
   session.setAttribute("count", count);
   out.println("<HTML><HEAD><TITLE>Session Count</TITLE></HEAD>");
out.println("<BODY>

Session Count

");
   out.println("You"ve visited this page " + count
       + ((count == 1) ? " time." : " times."));
   out.println("<P>");
out.println("

Here is your saved session data:

");
   Enumeration e = session.getAttributeNames();
   while (e.hasMoreElements()) {
     String name = (String) e.nextElement();
     out.println(name + ": " + session.getAttribute(name) + "
"); }
out.println("

Here are some vital stats on your session:

");
   out.println("Session id: " + session.getId() + " (keep it secret)
"); out.println("New session: " + session.isNew() + "
"); out.println("Timeout: " + session.getMaxInactiveInterval()); out.println("(" + session.getMaxInactiveInterval() / 60 + " minutes)
"); out.println("Creation time: " + session.getCreationTime()); out.println("(" + new Date(session.getCreationTime()) + ")
"); out.println("Last access time: " + session.getLastAccessedTime()); out.println("(" + new Date(session.getLastAccessedTime()) + ")
"); out.println("Requested session ID from cookie: " + req.isRequestedSessionIdFromCookie() + "
"); out.println("Requested session ID from URL: " + req.isRequestedSessionIdFromURL() + "
"); out.println("Requested session ID valid: " + req.isRequestedSessionIdValid() + "
");
out.println("

Test URL Rewriting

");
   out.println("Click ");
   out.println("to test that session tracking works via URL");
   out.println("rewriting even when cookies aren"t supported.");
   out.println("</BODY></HTML>");
 }

}

      </source>
   
  
 
  



HttpSession: setMaxInactiveInterval(int arg0)

   <source lang="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 SessionTimer extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,
     IOException {
   res.setContentType("text/html");
   PrintWriter out = res.getWriter();
   HttpSession session = req.getSession();
   out.println("<HTML><HEAD><TITLE>SessionTimer</TITLE></HEAD>");
out.println("<BODY>

Session Timer

");
   out.println("The previous timeout was " + session.getMaxInactiveInterval());
   out.println("
"); session.setMaxInactiveInterval(2 * 60 * 60); // two hours out.println("The newly assigned timeout is " + session.getMaxInactiveInterval()); out.println("</BODY></HTML>"); }

}

      </source>