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

2019-01-12 03:49发布

问题:

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>

回答1:

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:

  • How to configure welcome file list in web.xml
  • Set default home page via <welcome-file> in JSF project
  • Change default homepage in root path to servlet with doGet