如何制作自定义网址,例如mywebsite.com/movie_title而不是mywebsite.com/movie?id=9282

时间:2014-10-22 13:22:18

标签: java google-app-engine servlets

我正在使用java和谷歌应用引擎构建一个网站。我需要创建像www.mywebsite.com/the_dark_knight_rises

这样的网址

当用户访问该网址时,从我的数据库(mysql)中提取有关电影The Dark Knight Rises并显示的信息

我遇到的问题是

1)我不知道如何制作这些动态网址,因为我的数据库包含500k电影,所以我不认为我可以手动制作它们

2)如何提取有关该记录的信息。我有一个想法,让url的/ the_dark_knight_rises部分用空格替换下划线,并尝试像select * from table where title like 'the dark knight rises'那样搜索我的数据库,但我不确定这是否是最佳解决方案或如何获取该部分网址

欢迎任何帮助/指示

2 个答案:

答案 0 :(得分:2)

1)使用getPathInfo()getRequestURI()从当前网址中提取路径

2)从路径中删除下划线并构建电影标题

3)进行数据库调用

4)如果存在则显示movei,否则显示404。

答案 1 :(得分:0)

如果您的目的只是为了SEO或可读性目的,您可以随时提供网址www.website.com/movie_name_in_text?id=abc123

这允许您在数据库上执行get by id,但会为人和机器人显示文本信息。

您还应该考虑使用Web MVC框架,例如Springthundr或类似的框架。他们可以自动处理这种类型的数据绑定,而不是要求你编写低级servlet api。


免责声明,我是thundr的维护者