ContextAccessor.java Source code

Java tutorial

Introduction

Here is the source code for ContextAccessor.java

Source

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 + " ]";
    }

}