docs: public ScreenModel doProcessInput(BasicServlet servlet, HttpServletRequest req, HttpServletResponse res) 
          throws ServletException, IOException
      {
          this.parseArgs(req);    // Parameters are now available to all children of this Task.
  
          // First see if this is an active session
          if (m_application == null)
              m_application = this.findApplication(req, res);   // Always (note: This task is added to the application tasks)
          else
              Debug.doAssert(false);
  
          String strUserID = m_application.getProperty(DBParams.USER_ID);
          
          servlet.initServletSession(this);
  
          ComponentParent parentScreen = servlet.createTopScreen(this, null);
          ScreenModel screen = ((ScreenModel)parentScreen).getScreen(null, null);
          if (screen != null)
          {
              screen = screen.doServletCommand((ScreenModel)parentScreen);  // Move the input params to the record fields
              if (screen == null)
              {   // null = display Default Display Form
                  screen = (ScreenModel)Record.makeNewScreen(ScreenModel.MENU_SCREEN, null, parentScreen, 0, null, null, true);
              }
          }
          if (screen != null)
          	if (this.getProperty(DBParams.DATATYPE) == null)
          		screen = ((ScreenModel)parentScreen).checkSecurity(screen, (ScreenModel)parentScreen);  // Screen specified
          if (((strUserID == null) && (m_application.getProperty(DBParams.USER_ID) != null))
              || ((strUserID != null) && (!strUserID.equals(m_application.getProperty(DBParams.USER_ID)))))
          {   // Special case, the screen changed the user.
              m_application = this.changeCookie((ServletApplication)m_application, req, res);
          }
  
          if (res != null)
          	servlet.setContentType(res);
          
          return screen;
      }