Java 如何创建自定义URL,如mywebsite.com/movie\u title,而不是mywebsite.com/movie?id=9282

Java 如何创建自定义URL,如mywebsite.com/movie\u title,而不是mywebsite.com/movie?id=9282,java,google-app-engine,servlets,Java,Google App Engine,Servlets,我正在使用java和google应用程序引擎构建一个网站。我需要创建像www.mywebsite.com/the_dark_knight_rises这样的URL 当用户访问该url时,会从我的数据库(mysql)中提取有关电影《黑暗骑士》的信息并显示出来 我的问题是 1) 我不知道如何继续制作这些动态URL,因为我的数据库包含500k部电影,所以我认为我无法手动制作它们 2) 我如何获取有关该记录的信息。我想到了一个办法,用url中的/the_dark_knight_rises部分替换下划线,并

我正在使用java和google应用程序引擎构建一个网站。我需要创建像www.mywebsite.com/the_dark_knight_rises这样的URL

当用户访问该url时,会从我的数据库(mysql)中提取有关电影《黑暗骑士》的信息并显示出来

我的问题是

1) 我不知道如何继续制作这些动态URL,因为我的数据库包含500k部电影,所以我认为我无法手动制作它们

2) 我如何获取有关该记录的信息。我想到了一个办法,用url中的/the_dark_knight_rises部分替换下划线,并尝试从标题为“the dark knight rises”的表中搜索我的数据库,如
select*,
,但我不确定这是否是最好的解决方案,也不确定如何获取url的该部分

欢迎提供任何帮助/说明

1)使用或从当前url提取路径

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

3) 打数据库电话


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

如果您的目的只是为了SEO或可读性,则可以始终将URL作为www.website.com/movie\u name\u in\u text?id=abc123

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

您可能还应该考虑使用WebMVC框架,例如,或类似的框架。它们可以自动处理这种类型的数据绑定,而无需编程到低级servlet api



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

您可以从HttpServletRequest.getRequestedUrl()或HttpRequest.getServletPath()解析名称。我正在从事一个类似的项目,其中每个实体都有一个UUID。我制作了一个servlet,它映射所有UUID并从数据库中提取数据。请注意,请确保您使用它,您永远不希望让用户输入未经授权进入数据库查询