Jsp 如何将URL/foo/*映射到Google App Engine上的静态文件/foo.html?
我有一个关于谷歌应用程序引擎(Java)的问题。我想将URL模式Jsp 如何将URL/foo/*映射到Google App Engine上的静态文件/foo.html?,jsp,google-app-engine,servlets,Jsp,Google App Engine,Servlets,我有一个关于谷歌应用程序引擎(Java)的问题。我想将URL模式/foo/*映射到一个静态文件/foo.html(这样请求/foo/bar或/foo/baz将返回/foo.html的内容)。静态文件foo.html包含javascript,该javascript根据实际请求URL使用内容填充页面 我知道如何使用web.xml将通配符URL映射到servlet,但我还没有找到任何类似的静态文件 我的appengineweb.xml具有/static 到目前为止,我提出的最佳解决方案是将/foo/*
/foo/*
映射到一个静态文件/foo.html
(这样请求/foo/bar
或/foo/baz
将返回/foo.html
的内容)。静态文件foo.html
包含javascript,该javascript根据实际请求URL使用内容填充页面
我知道如何使用web.xml
将通配符URL映射到servlet,但我还没有找到任何类似的静态文件
我的appengineweb.xml
具有/static
到目前为止,我提出的最佳解决方案是将
/foo/*
映射到一个servlet,该servlet将foo.html
作为JSP页面提供服务。您不需要使用servlet,您可以将url模式直接映射到JSP,并且其中只有html:
<servlet>
<servlet-name>foo.jsp</servlet-name>
<jsp-file>/foo.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>foo.jsp</servlet-name>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
foo.jsp
/foo.jsp
foo.jsp
/福/*
使用以下两种解决方法之一:
选项1
假设您想将/foo
映射到html文件
webapp
目录中创建一个目录foo
foo
目录中创建一个html文件index.html
appengine web.xml
中添加以下内容:
<static-files>
<include path="/foo"/>
</static-files>
/foo
,它应该提供foo目录中的index.html
选项2
使用app.yaml for java,如下所述:
使用静态文件处理程序:谢谢@moshe shaham,我明白你的意思了。不过,请求仍然会命中应用程序服务器。我希望将HTML作为一个真正的静态文件提供:@user2962393我认为没有应用服务器是不可能的。另一个选项是通过hashtag指定url:
http://www.example.com/#url/to/path
。通过这种方式,它提供index.html,而不考虑pathOn应用程序引擎,这将仅适用于.jsp文件。也就是说,您不能以这种方式映射.html文件(仅在dev服务器上)。这是BS,因为它在python中是可能的:选项1对我有效,而接受的答案不允许使用.html