/** * Processes the DHTML file specified as servlet name. * * @param \AppserverIo\Psr\Servlet\ServletRequestInterface $servletRequest The request instance * @param \AppserverIo\Psr\Servlet\ServletResponseInterface $servletResponse The response sent back to the client * * @return void * * @throws \AppserverIo\Psr\Servlet\ServletException If no action has been found for the requested path */ public function service(ServletRequestInterface $servletRequest, ServletResponseInterface $servletResponse) { // pre-initialize the X-POWERED-BY header $poweredBy = $this->getPoweredBy(); // append an existing X-POWERED-BY header if available if ($servletResponse->hasHeader(HttpProtocol::HEADER_X_POWERED_BY)) { $poweredBy = $servletResponse->getHeader(HttpProtocol::HEADER_X_POWERED_BY) . ', ' . $poweredBy; } // set the X-POWERED-BY header $servletResponse->addHeader(HttpProtocol::HEADER_X_POWERED_BY, $poweredBy); // servlet path === relative path to the template name $template = $servletRequest->getServletPath(); // check if the template is available if (file_exists($pathToTemplate = $this->getWebappPath() . $template) === false) { throw new ServletException(sprintf('Requested template \'%s\' is not available', $template)); } // process the template ob_start(); require $pathToTemplate; // add the servlet name to the response $servletResponse->appendBodyStream(ob_get_clean()); }