Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.0, 1.1, 1.2
-
None
-
None
-
n/a
Description
WebContext should not be an abstract class. ServletWebContext should not be a concrete class.
Different applications may want to have different base implementations of context but still have WebContext methods. A perfect example is in Struts 1.3: WebActionContext and ServletActionContext duplicate many of the methods in their chain equivalents without adhering to a common interface.
I use the classes below in my application. Most Commons projects do not use the "IXxxx" interface naming convention but I had no choice here.
public interface IWebContext extends Context
{
public Map getApplicationScope();
public Map<String, String> getHeader();
public Map<String, String[]> getHeaderValues();
public Map<String, String> getInitParam();
public Map<String, String> getParam();
public Map<String, String[]> getParamValues();
public Map getRequestScope();
public Map getSessionScope();
}
public interface IServletWebContext extends IWebContext
{
public ServletContext getContext();
public Map<String, Cookie> getCookies();
public Cookie deleteCookie( final String cookieName );
public HttpServletRequest getRequest();
public HttpServletResponse getResponse();
}