1

HTML + JQueryをUI、Spring-Rooとして使用して、Jsonオブジェクトの文字列変換を含むサービスレイヤーを生成しています。次のサンプルコードのようにうまく機能します。

@RequestMapping(headers = "Accept=application/json")
@ResponseBody
public ResponseEntity<String> ArticleController.listJson() {
    HttpHeaders headers = new HttpHeaders();
    headers.add("Content-Type", "application/json; charset=utf-8");
    List<Article> result = Article.findAllArticles();
    return new ResponseEntity<String>(Article.toJsonArray(result), headers, HttpStatus.OK);
}

しかし、いくつかのサンプルページが作成された後、いくつか質問があります。

1)アクセス制御モジュールとしてSpring-Securityを使用したいのですが、このフレームワークで問題ありませんか?サーバーは、それがブラウザからの同じセッション要求であることをどのように知ることができますか?

2)jspサーバーテクノロジーの代わりに、純粋なHTML + JQueryは本当に大丈夫ですか?htmlに多くのAjaxコードが挿入されており、それらの多くは再利用できないためです。私たちが知っているように、サーバーテクノロジーには、コードの再利用を最大化できるテンプレートがあります。開発の難しさとメンテナンスの努力が心配です。

PS: Why we decided using HTML+JQuery+Json is because we directly get HTML+CSS from Art designer, 
and we have plan to support different client besides browser, so Json might be a good choice.

ありがとう。

4

1 に答える 1

2

1)アクセス制御モジュールとしてSpring-Securityを使用したい[...]サーバーは、ブラウザーからの同じセッション要求であることをどのようにして知ることができますか?

まず、サーバー側で何らかの方法でセッションを確立する必要があります。標準のSpringSecurityログイン画面を使用するか、 spring_security_loginを使用して呼び出します。その見返りに、サーバーはJSESSIONIDを含むCookieを送信します。このCookieは、後続のすべてのリクエスト(AJAXリクエストを含む)で送信されるため、サーバーはどのユーザーがRESTメソッドを呼び出すかを認識します。これは完全に透過的です。

また、(を呼び出して)ログアウトするとj_spring_security_logout、セッションとCookieが破棄されます。

サービスを呼び出している歴史的な理由により!)、それは本当にうまく機能します。

2)[...]純粋なHTML + JQueryは本当に大丈夫ですか?htmlに多くのAjaxコードが挿入されており、それらの多くは再利用できないためです。[...]

関心の分離は王様です。JavaScriptを1つの場所(.js)ファイルに保持し、HTMLを別の場所(.html)に保持します。それらは決して混合されるべきではありません。また、JavaScriptコードを階層化して、DOM操作をできるだけ避けます(たとえば、クライアント側のテンプレートエンジンを使用します)。

さらに、ビルド中にHTMLを生成することを妨げるものは何もないため、ヘッダーやフッターなどの一般的なHTMLスニペットがすべてのページに含まれます。

于 2012-07-09T16:20:56.300 に答える