code: @Override
  	final protected void reportingDoGet(HttpServletRequest httpReq, HttpServletResponse resp) throws ServletException, IOException, SQLException {
  		WebSiteRequest req=getWebSiteRequest(httpReq);
  		WebPage page=getWebPage(getClass(), req);
  		// Logout when requested
  		boolean isLogout="true".equals(req.getParameter("logout_requested"));
  		if(isLogout) req.logout(resp);
  
  		// Check authentication first and return HTTP error code
  		boolean alreadyDone=false;
  		if("true".equals(req.getParameter("login_requested"))) {
  			page.printLoginForm(page, new LoginException("Please Login"), req, resp);
  			alreadyDone = true;
  		}
  		if(!alreadyDone) {
  			try {
  				WebSiteUser user=req.getWebSiteUser(resp);
  				if(!page.canAccess(user)) {
  					page.printUnauthorizedPage(page, req, resp);
  					alreadyDone=true;
  				}
  			} catch(LoginException err) {
  				page.printLoginForm(page, err, req, resp);
  				alreadyDone=true;
  			}
  		}
  		if(!alreadyDone) {
  			String redirect=page.getRedirectURL(req);
  			if(redirect!=null) {
  				ServletUtil.sendRedirect(req, resp, redirect, page.getRedirectType());
  			} else {
  				page.doGet(req, resp);
  			}
  		}
  	}
docs: First, resolves correct instance of <code>WebPage</code>.  Next, handles security
  mode, authentication check, and redirects.  Anything left goes on to <code>doGet</code>.
  
  @see  #doGet(WebSiteRequest,HttpServletResponse)