1

JDOデータベースからデータを取得して3つのプラットフォームすべてに出力する同じ方法を使用できるように考えようとしていますが、ブラウザリクエストの場合は動的Webページジェネレーターに出力されるという違いがあります。しかし、良い方法が思い浮かびません。

たとえば、ブラウザが投稿を要求すると、動的ページ + 情報要求を出力するコードに移動します。このような

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

ただし、アプリの 1 つが投稿を要求すると、次のように返されます。

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

動的な Web ページに印刷する必要がなく、ここから情報を取得するためです。そのため、ユーザー プラットフォームに基づいて異なるコンテンツを返すようにしたいと考えています。ただし、同じメソッド呼び出しを使用します。

これで、同じ情報を要求するための異なるリンクが作成されました。1 つは Web で、もう 1 つはアプリ (デスクと Android) です。しかし、私は 3 つすべてのリンクを 1 つだけにすることを考えていました。これまでのところ、私は

1º リクエストを実行しているプラ​​ットフォームに関するログイン Cookie の情報を取得し、2 つの異なるタイプの print メソッドで if を実行します。

2º または、常にその情報とともにもう 1 つのパラメーターを送信し、if... などを実行します。

しかし、私はこの方法は本当に洗練されていないと思います。

誰かがこれについて厳しいですか?

4

1 に答える 1

1

通常、「拡張」および/またはリクエストのAcceptヘッダーをチェックすることによって作成されます。たとえば/person/profile.html、このデータを HTML としてレンダリングする URL の場合、または URL が/person/profile+ ヘッダーのAccept: application/json場合は JSON としてレンダリングします。

両方の方法で同じデータを使用できますが、シリアル化の種類が異なります。「Spring Web」または同様のフレームワークを使用している場合、構成は簡単です。

于 2011-06-29T17:55:28.530 に答える