1

我试图以一种方式思考,我可以使用相同的方法从 JDO 数据库获取和打印数据到所有 3 个平台,但不同的是,如果它是浏览器请求,它将在动态网页生成器中打印。但我似乎想不出一个好的方法。

例如,如果浏览器要求发布帖子,它将转到打印动态页面的代码 + 信息请求。像这样

for (Texto e : results) 
        {
 print = "<table width='100%' border='2' cellspacing='2' cellpadding='2'>"
                                    + "<tr><td colspan='2'>"
                                    + results.get(0).titulo
                                    + ";</td></tr><tr><td colspan='2'>"
                                    + results.get(0).texto

但是,如果其中一个应用程序要求发布它只会返回:

 for (Texto e : results) 
        {
            resp.getWriter().println("Titulo:"
                + results.get(0).titulo);
            resp.getWriter().println("Nome:"
                + results.get(0).nome);

因为它不需要打印到动态网页并从这里获取信息。所以我希望它根据用户平台返回不同的内容。但是使用相同的方法调用。

现在我有不同的链接来请求相同的信息,一个到网络,一个到应用程序(桌面和安卓)。但我在考虑只为所有三个链接提供一个链接。到目前为止,我虽然

1º在登录cookie中获取有关正在执行请求的平台的信息,并通过两种不同类型在打印方法中执行if。

2º 或者只发送一个带有该信息的参数并执行 if... 等...

但我认为这种方法真的很简单。

有人对此有任何疑虑吗?

4

1 回答 1

1

它通常是通过检查“扩展”和/或请求的Accept标题来完成的。例如,对于 url,/person/profile.html您将将此数据呈现为 HTML,或者如果 url 是/person/profile+ header Accept: application/json,您将其呈现为 JSON。

您可以对这两种方法使用相同的数据,但使用不同的序列化类型。如果您使用“Spring Web”或类似的框架,则很容易配置。

于 2011-06-29T17:55:28.530 回答