0

我创建了一个小型 java servlet,并希望通过 URI 动态映射内容。例如,如果有人调用以下 URI http://example.com/yell/2013-08-01/first-article,我的 servlet 应该按日期和标题从数据库中获取内容并将其响应给客户端。

我不确定实现这一点的“正确”模式。我的想法是听 <url-pattern>/yell/*</url-pattern>,用 ) 获取路径,然后在角色request.getRequestURI(处拆分它。'/'这是常见的模式吗?你有什么建议?我猜 REST 不是“正确”的方式?创建一个小例子。谢谢你的提示!

4

3 回答 3

2

如果您有特定的理由要手动编写 servlet,那么您的方法应该可行。另一方面,Spring MVC系统虽然需要一些额外的设置来启动,但让这种任务变得异常简单:你只需编写一个常规的 Java 方法,它接受 aDate和 a String(或两个Strings),用 注释它@RequestMapping,然后你'重做。

于 2013-08-02T16:35:17.020 回答
0

您可以使用正则表达式来提取文章的日期和名称。

String regExp = "yell\\/(\\d{4}-\\d{2}-\\d{2})\\/(.*)";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = 
pattern.matcher("yell/2013-08-01/first-article");
if( matcher.matches() ){
    // date
    String date = matcher.group(1);
    // article name
    String articleName = matcher.group(2);
}
于 2013-08-02T17:15:44.100 回答
0

其他使用rest的解决方案,可以使用Spring或Java EE,如果选择Java EE,则需要像glassfish一样支持Java EE的应用服务器,Apache tomcat不支持Java EE应用。

那么你可以按照这样的教程进行操作:

http://www.vogella.com/articles/REST/article.html

这是您的代码的外观。

@Path("yell/{date}/{articleName}")
public class RestService {
    @GET
    @Produces("application/json")
    public String getJson(@PathParam("date") String date, 
      @PathParam("articleName") String articleName) {
        return "{ \"content\" : \"// TODO\" }";
    }
}
于 2013-08-02T17:48:00.180 回答