servlet的实现,用于识别请求者并为浏览器发送动态html或仅为移动/桌面应用程序发送信息



我试图用同样的方法从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);

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

现在我有不同的链接来请求相同的信息,一个链接到网络,一个连接到应用程序(桌面和android)。但我在想,这三个环节都只有一个环节。到目前为止,我认为

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

2º或者只需再发送一个始终带有该信息的参数,并进行if…等…

但我觉得这种方法真的很简单。

有人对此有意见吗?

它通常是通过检查"扩展"和/或请求的Accept标头来完成的。例如,对于像/person/profile.html这样的url,您将把该数据呈现为HTML,或者如果url是/person/profile+header Accept: application/json,您将它呈现为JSON。

两种方法可以使用相同的数据,但序列化类型不同。如果您使用的是"SpringWeb"或类似的框架,那么配置起来很容易。

最新更新