Реализация сервлета, который идентифицирует запросчик и отправляет динамический HTML для браузера или просто информацию для мобильного / настольного приложения - PullRequest
1 голос
/ 29 июня 2011

Я пытаюсь представить, что у меня могут быть одни и те же методы для получения и печати данных из базы данных 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º Или просто отправьте еще один параметр всегда с этой информацией и сделайте, если ... и т.д ...

Но я думаю, что эти методы действительно просты.

У кого-нибудь есть какие-то проблемы по этому поводу?

1 Ответ

1 голос
/ 29 июня 2011

обычно делается путем проверки "extension" и / или заголовка Accept запросов. Например, для URL, например /person/profile.html, вы будете отображать эти данные в виде HTML, или, если url равен /person/profile + header Accept: application/json, вы будете отображать их как JSON.

Вы можете использовать одни и те же данные для обоих методов, но с другим типом сериализации. Это легко настроить, если вы используете Spring Web или аналогичную среду.

...