Search code examples
javagoogle-app-engineservletsweb.xml

How to use a sub-folder as web.xml welcome directory


I want to configure my web.xml for Google App Engine, but my configuration doesn't work. I want to change the default index.html with WebApp/index.html.

Here is the web.xml:

<servlet>
    <servlet-name>App</servlet-name>
    <servlet-class>bg.app.AppServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>App</servlet-name>
    <url-pattern>/WebApp/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>WebApp/index.html</welcome-file>
</welcome-file-list>

Solution

  • The "welcome file" represents the physical file which needs to be served when a folder is requested by URL. E.g. / or /WebApp/ or WebApp/foo/. It does not represent the "homepage file" or so as many starters seem to think. It does not make sense to let the welcome file point to a subfolder. It would fail when another subfolder is been requested.

    Just stick to index.html as welcome file, put the desired homepage file in /WebApp/ folder and create another index.html file in root folder / with the following content:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <title>Dummy homepage</title>
        <meta http-equiv="refresh" content="0; url=WebApp" />
      </head>
    </html>
    

    This will redirect to /WebApp/ (searchbots will treat it as 301) which in turn should serve the desired homepage file.

    See also: