Servlets Java

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ContextAccessor extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, java.io.IOException {
    //get a servlet context attribute
    ContextObject contextObj = (ContextObject) getServletContext()
        .getAttribute("com.rntsoft.ContextObject");
    if (contextObj != null)
      contextObj.put(request.getRemoteAddr(), "" + new java.util.Date());
    //display
    response.setContentType("text/html");
    java.io.PrintWriter out = response.getWriter();
    out
        .println("Servlet Context Attribute");
    if (contextObj != null) {
      out.println("

Servlet Context Attribute Values

");
      out.println(contextObj.getValues());
    } else {
      out.println("

Servlet Context Attribute is Null

");
    }
    out.println("");
  } //end doGet
}
//ContextObject.java
class ContextObject {
  private Map map;
  public ContextObject() {
    map = Collections.synchronizedMap(new HashMap());
  }
  public void put(Object key, Object value) {
    if (key == null || value == null)
      throw new IllegalArgumentException(
          "Invalid parameters passed to ContextObject.put");
    map.put(key, value);
  }
  public Map getMap() {
    return map;
  }
  public String getValues() {
    StringBuffer buf = new StringBuffer("");
    Set set = map.keySet();
    synchronized (map) {
      Iterator i = set.iterator();
      while (i.hasNext())
        buf.append((String) i.next() + "
");
    }
    return buf.toString();
  }
  public String toString() {
    return getClass().getName() + "[ " + map + " ]";
  }
}