0

Tomcat サーバー、サーブレット、および jsp ページを使用して、単純な Web アプリケーションを作成しています。理想的には、自分の Web サイトを、ユーザー アクションでコンテンツ (jsp ファイル) をロードする 1 つのページだけにしたいと考えています。

ただし、ユーザーが特定の URL を「ブックマーク」して、必要なコンテンツに直接アクセスできるようにすることも重要です。

たとえば、サイトのすべての登録ユーザーの詳細を示すページがあり、各ユーザーにプロファイル ページがあるとします。誰かのプロフィールに移動したユーザーに、次の URL が表示されるようにします。

http://mywebsite.com/users/some_user_name

そして、この URL を入力すると、some_user_name のプロファイルにアクセスできます。

問題は、すべてのコンテンツが ajax を使用して生成され、history.pushState を使用して表示される URL を手動で変更したことです。そのため、サンプルの URL を入力すると、単に 404 ページが表示されます。

私が念頭に置いていた簡単な解決策は、正しい JSP ページで応答する /users/* パターンにサーブレットをマップすることでした。これは合理的な解決策ですか、それともこの種の問題を処理するためのより適切で受け入れられる方法はありますか?

ありがとう :)

4

1 に答える 1

0

pushStateを使用して履歴を管理している場合は、URLを介してアプリケーションに直接アクセスするときに、urlフラグメントを取得してajax呼び出しを行い、コンテンツをロードできます。これを実現するには、すべてのURLがRESTに準拠している必要があるため、このような場合に適切なビューを簡単に読み込むことができます。

http://mywebsite.com/users/profile/some_user_name

これで、アプリが読み込まれたときに、ユーザー名some_user_nameでプロファイルビューを読み込むことができます。

編集のような他のビューが必要な場合は、

http://mywebsite.com/users/profile/edit/some_user_name

また

http://mywebsite.com/users/profileEdit/some_user_name

これらのURLを適切にルーティングできるルーターと、サーバーからデータをフェッチして表示に渡すことができるメインメソッドを実装する必要があります。

JSPコードをRESTWebサービスとして使用できる場合、これは簡単に実現できます。また、このようなものをサポートするライブラリもたくさんあります。Backbone.js/Knockout.jsを調べることをお勧めします

これが、人気のあるフレームワークと比較のリストです。

しかし、あなたが直面するかもしれない問題はSEOです。これにもいくつかの回避策があります。

于 2012-08-24T01:23:30.317 に答える