code: public boolean initSettings(CmsWorkplaceSettings settings, HttpServletRequest request) {
  
          // check if the user requested a project change
          String project = request.getParameter(PARAM_WP_PROJECT);
          boolean reloadRequired = false;
          if (project != null) {
              reloadRequired = true;
              try {
                  getCms().readProject(new CmsUUID(project));
              } catch (Exception e) {
                  // project not found, set online project
                  project = String.valueOf(CmsProject.ONLINE_PROJECT_ID);
              }
              try {
                  m_cms.getRequestContext().setCurrentProject(getCms().readProject(new CmsUUID(project)));
              } catch (Exception e) {
                  if (LOG.isInfoEnabled()) {
                      LOG.info(e);
                  }
              }
              settings.setProject(new CmsUUID(project));
          }
  
          // check if the user requested a site change
          String site = request.getParameter(PARAM_WP_SITE);
          if (site != null) {
              reloadRequired = true;
              m_cms.getRequestContext().setSiteRoot(site);
              settings.setSite(site);
          }
  
          // check which resource was requested
          String explorerResource = request.getParameter(PARAM_WP_EXPLORER_RESOURCE);
          if (explorerResource != null) {
              reloadRequired = true;
              settings.setExplorerResource(explorerResource, getCms());
          }
  
          return reloadRequired;
      }
docs: Sets site and project in the workplace settings with the request values of parameters
  <code>{@link CmsWorkplace#PARAM_WP_SITE}</code> and <code>{@link CmsWorkplace#PARAM_WP_PROJECT}</code>.<p>
  
  @param settings the workplace settings
  @param request the current request
  
  @return true, if a reload of the main body frame is required