8

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>
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
uccie
  • 183
  • 1
  • 2
  • 9

1 Answers1

16

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:

Community
  • 1
  • 1
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • 1
    This works great and has a big advantage over welcome-file-list in that the URL in the address bar actually changes to what's specified in the meta tag above. – Russ Jackson Mar 29 '15 at 14:52