Google App Engine中的漂亮网址

时间:2010-02-19 14:41:43

标签: java google-app-engine gwt friendly-url

我想将参数'A1B2C3'传递给基于Google App Engine的GWT应用程序。我这样做就像www.example.com/index.html?key=A1B2C3。虽然它有效,但我想使用漂亮的URL。是否可以在Google App Engine上进行URL重写?我怎么也找不到。

www.example.com/A1B2C3

而不是

www.example.com/index.html?key=A1B2C3

我正在使用Google App Engine和GWT。全部是Java。

7 个答案:

答案 0 :(得分:7)

这是一个很酷的问题。我也想出了如何为python做这件事。

的app.yaml:

- url: /test/(.*)
  script: test.py \1

test.py:

#!/usr/bin/env python

import sys

def main():           
  for arg in sys.argv:
     print arg

if __name__ == '__main__':                               
  main()

答案 1 :(得分:6)

您需要配置应用程序(请参阅here)。换句话说,你需要“连接”你想要的模式。

从手册中,举例:

<servlet-mapping>
    <servlet-name>redteam</servlet-name>
    <url-pattern>/red/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>blueteam</servlet-name>
    <url-pattern>/blue/*</url-pattern>
</servlet-mapping>

答案 2 :(得分:3)

尝试UrlRewriteFilter:http://tuckey.org/urlrewrite/(或github repo)它是一个简单的'Java EE过滤器,所以它应该可以工作。

答案 3 :(得分:1)

节省一些时间并使用Restlet。你可以做到这一点,我已经在两个不同的项目中做到了这一点。这很直截了当。如果您需要帮助,请告诉我。

答案 4 :(得分:1)

我可能会使用PrettyFaces http://ocpsoft.com/prettyfaces/,它允许您直接在现有应用程序之上进行URL映射。

您只需在pretty-config.xml文件中配置类似的内容:

<url-mapping>
   <pattern value="/my/pretty/url" />
   <view-id value="/my/existing/url" />
</url-mapping>

或者如果您想重写参数,可以这样做:

<url-mapping>
   <pattern value="/my/pretty/url/#{param}" />
   <view-id value="/my/existing/url" />
</url-mapping>

这意味着任何网址(入站)现在变为:

/my/pretty/url/value -> /my/existing/url?param=value

在HTML网页和重定向中,您的网址将如下所示:

/my/existing/url?param=value -> /my/pretty/url/value

因此,您可以轻松添加到当前的应用中。

答案 5 :(得分:0)

这是另一个我认为可能对你有帮助的项目:

它被称为restful-gwt ...它也很漂亮: http://code.google.com/p/restful-gwt/

祝你好运!

答案 6 :(得分:0)

这是我到目前为止发现的用于实现URL重写GAE Python的best approach