Uploaded image for project: 'Commons Chain'
  1. Commons Chain
  2. CHAIN-47

WebContext, ServletWebContext should be interfaces.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.0, 1.1, 1.2
    • 2.0
    • 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();
      }

      Attachments

        Activity

          People

            Unassigned Unassigned
            os111 ori
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: