2011-06-29 6 views
1

JDOデータベースからすべてのアプリケーションにデータを取得して印刷する方法は同じです3つのプラットフォームをサポートしていますが、ブラウザリクエストの場合は動的Webページジェネレータで印刷されます。しかし、私はうまくいかない方法を考えているようです。リクエスタを識別し、ブラウザ用の動的htmlやモバイル/デスクトップアプリ用の情報だけを送信するサーブレットの実装

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

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); 

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

今、私は同じ情報をリクエストするために、ウェブとアプリ(デスクとアンドロイド)にそれぞれ異なるリンクを用意しています。しかし、私は3つすべてのリンクを1つだけ持つことを考えていました。これまでのところ

1ºリクエストを実行しているプラ​​ットフォームについての情報をログインクッキーで取得し、2つの異なる種類の印刷方法でifを実行します。など

2ºそれとも、その情報を、常に1つの以上のパラメータを送信した場合に行う... ...

しかし、私はこの方法を考えているが、本当に素朴です。

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

+0

リクエストを行っているユーザーやユーザーのクライアント(ブラウザ/アンドロイドアプリなど)に基づいてさまざまなコンテンツに基づいて異なるコンテンツを返すことについて話していますか?または両方? – Dave

+0

投稿にレスポンスを追加しました。 – Lucky

答えて

1

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

両方のメソッドで同じデータを使用できますが、異なるシリアル化タイプがあります。 'Spring Web'などのフレームワークを使用している場合は、設定が簡単です。

関連する問題