Красивые URL в Google App Engine - PullRequest
       15

Красивые URL в Google App Engine

13 голосов
/ 19 февраля 2010

Я хочу передать параметр «A1B2C3» в приложение GWT на основе Google App Engine. Я делаю это как www.example.com/index.html?key=A1B2C3. Хотя это работает, я хотел бы использовать красивые URL. Можно ли сделать перезапись URL в Google App Engine? Я не мог узнать как.

www.example.com/A1B2C3

вместо

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

Я использую Google App Engine и GWT. Все на Яве.

Ответы [ 7 ]

7 голосов
/ 20 февраля 2010

Это крутой вопрос.Я понял, как это сделать и для 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()
6 голосов
/ 19 февраля 2010

Вам необходимо настроить приложение (см. здесь ). Другими словами, вам нужно «связать» нужные вам шаблоны.

Из руководства, пример:

<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>
3 голосов
/ 20 февраля 2010

Попробуйте UrlRewriteFilter: http://tuckey.org/urlrewrite/ (или github repo ) это простой старый фильтр Java EE, поэтому он должен работать.

1 голос
/ 30 июня 2011

Я бы, вероятно, использовал 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>

А это значит, что любые URL (входящие) теперь становятся:

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

И ваши исходящие URL будут выглядеть так на HTML-страницах и в перенаправлениях:

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

Так что легко добавить в ваши текущие приложения.

1 голос
/ 21 февраля 2010

Экономьте время и используйте Restlet.Вы можете сделать именно это, и я сделал это в двух разных проектах.Это довольно просто.Если вам нужна помощь, дайте мне знать.

0 голосов
/ 26 ноября 2010

Это лучший подход , который я нашел до сих пор для реализации перезаписи URL GAE Python

0 голосов
/ 16 марта 2010

Вот еще один проект, который, я думаю, может действительно помочь вам:

Это называется restful-gwt ... это тоже довольно гладко: http://code.google.com/p/restful-gwt/

Удачи!

...