0

サーブレットは、post&getからデータを取得し、Webアプリケーションのビュー部分にデータを渡すオブジェクトであるため、次のように使用できます。

  • HTMLフォームから送信されたデータを処理または保存する
  • データベースクエリの結果などの動的コンテンツを提供する

ただし、ウィキペディアではこれも見られます。

  • 適切な顧客のショッピングカートに記事を入力するなど、ステートレスHTTPプロトコルには存在しない状態情報を管理します

では、適切な顧客のショッピングカートに記事を入力するとはどういう意味ですか?

これは、サーブレットがセッション変数であることを意味しますか?誰かがこの振る舞いを説明し、さらに良い例を挙げてもらえますか?ありがとう。

4

4 に答える 4

2

HTTPはステートレスです。サーバーから返されるデータは、ユーザーによる以前のアクションに依存しないことを意味します。Cookieやその他のHTTP以外の方法により、Webはステートフルに見えるようになり、ユーザーはたとえばWebサイトにログインおよびログアウトできます。

チェックアウト: http ://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

アプリケーション開発者にとって、それは常にステートレスです。

エンドユーザーにとっては、ステートフルのように見えます

今、

HTTPリクエストごとに、接続が維持されているかどうかに関係なく、サーブレット(つまり、サーブレットのサービスとdoXxxメソッドを呼び出すスレッド)が新たに呼び出されます。

編集:

HttpSessionオブジェクトは、特定のセッションに関連する情報、たとえば現在のセッションのカート内の製品の数を設定するために使用されます。ブラウザを閉じるか、Cookieをクリアすると、セッションが閉じられることに注意してください。

Webサーバーは、同じセッションであることをどのように認識しますか?

Webサーバーは、cookieの形式でsessionIdをブラウザに送信します。そして、ブラウザは、後続のリクエストのために、sessionIdを持つCookieをサーバーに送り返します。

ブラウザは、リンク/リクエストに対して送信するCookieをどのように識別しますか?

これらのパラメータに基づいています。リクエストがこれらのパラメータと一致する場合、ブラウザはその特定のCookieを送信します。

ドメイン:リクエストが行われるドメイン名。

パス:コンテキストルートパス名が同じ場合。

安全:サーバーは、指定されたCookieがこの安全でないチャネルで送信できる場合に送信します

Cookieが無効になっている場合は、URL書き換えを使用します。

ブラウザを閉じて開いた後もセッションを保持することはできますか?はい。答えはクッキー+DB+グーグルです:)

于 2013-03-10T19:30:02.880 に答える
0

HttpSessionオブジェクトには、サーブレットのdoXXX()メソッドのメソッドargとして渡されるHttpServletRequestオブジェクトからアクセスできます。このセッションはステートフルです。

于 2013-03-10T18:13:12.080 に答える
0

Javaサーブレットでは、

get/postリクエストパラメータから変数の値をに格納できます

リクエスト状態またはセッション状態。

リクエスト状態変数の場合-

request.setAttribute("requestvariable", "My Value");

完全な要求-応答サイクルで値を保存します。

セッション状態変数内-

request.getSession().setAttribute("sessionvariable", "My Value");

同じブラウザセッションでの複数の要求-応答サイクルに値を保存します。

また、変数の値は次の方法で削除できます。

request.getSession().removeAttribute("sessionvariable");

このセッション変数値は、セッション内のユーザーショッピングカート情報などのアプリケーションで複数のjsp/servletで提供できます。

したがって、サーブレットはここでコントローラーとして機能し、変数の状態は、フレームワークで指定されたapiおよび変数のセッションまたは要求に格納されます。

于 2013-03-10T18:20:45.280 に答える
0

サーブレットは、コンテナ(appsrver)によって作成されたセッションにもアクセスできます。request.getSession()

セッションを使用すると、サーブレットはカートアイテムをセッションに保存し、クライアントからのさまざまな要求でアクセスできるようにするなどのセッション管理を実行できます。

于 2013-03-10T18:22:08.723 に答える