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.java2s.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("<html><head><title>Servlet Context Attribute</title></head><body>");
if (contextObj != null) {
out.println("<h2>Servlet Context Attribute Values</h2>");
out.println(contextObj.getValues());
} else {
out.println("<h2>Servlet Context Attribute is Null</h2>");
}
out.println("</body></html>");
} //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() + "<br>");
}
return buf.toString();
}
public String toString() {
return getClass().getName() + "[ " + map + " ]";
}
}
|