1クッキーとは何ですか
ブラウザとWebサーバーは、HTTPプロトコルを使用して通信します。ユーザーがページリクエストを発行すると、Webサーバーは単純に応答し、ユーザーとの接続を閉じます。したがって、リクエストが最初の訪問であるかどうかに関係なく、リクエストがWebサーバーに送信されると、サーバーはそれを初めて扱います。これは想像できる悪いことです。この欠陥を補うために、Netscapeは特定のユーザーの識別情報を保存するための効果的なツールであるCookieを開発しました。 Cookieは、Webサーバーがブラウザを介して訪問者のハードディスクに関する情報を保存する手段です。NetscapeNavigatorは、Cookies.txtというローカルファイルを使用して、すべてのサイトから受信したCookie情報を保存します。 IEブラウザは、C:/Windows/Cookieと同様のディレクトリにCookie情報を保存します。ユーザーが再びサイトにアクセスすると、サーバーはブラウザに、以前に送信されたCookie情報を見つけて返すように依頼し、ユーザーを識別します。
2 Cookieの4つの属性
Max-Ageは、CCookieの寿命を指定します(秒)!デフォルトでは、Cookieの値はブラウザのセッション中にのみ存在し、ユーザーがブラウザを終了するとこれらの値が消えます!
パスは、Cookieに関連付けられたWebページを指定します。デフォルトでは、Cookieはそれを作成するWebページ、およびWebページのWebページとディレクトリ内のサブディレクトリのWebページに関連付けられています。
ドメインアクセスドメインを設定する例:Order.example.comにあるサーバーは、catalog.example.comでCookieセットを読み取る必要があります。ここでは、ドメイン属性を導入する必要があります。 catalog.example.comにあるページで作成されたCookieは、パス属性を「/」と「example.com」にドメイン属性に設定し、次に「catalog.example.com」にあるすべてのWebページと、「Orders.example.com」にあるすべてのWebページと「Orders.example.com」にあるすべてのWebページと、Example.comにある他のすべてのサーバーにあるすべてのWebページにあると仮定します。 Cookieのドメイン値が設定されていない場合、この属性のデフォルト値は、Cookieが作成されるWebページのホスト名です。注:Cookieのドメインは、サーバーが存在するドメインの外側のドメインに設定することはできません。
Seureは、Cookieの値がネットワーク上にどのように送信されるかを指定します
3 Java Cookie Operation
クッキーを作成します
//新しいCookieオブジェクト、キー値ペアはパラメーターCookie cookie = new Cookie( "key"、 "cookie value"); Cookieの値に中国語が含まれている場合、Cookieをエンコードする必要があります。 urlencoder.encode( "cookie value"、 "utf-8"); // cookieの最大サバイバル時間を数秒単位で設定します。負の数がブラウザプロセスである場合、ブラウザのcookieがcookie.setmaxage(*24*60*60)を閉じます。 //ある日// cookieを応答に追加して、response.addcookie(cookie); // addCookieの後、同じ名前のクッキーがすでに存在する場合、最新は古いクッキーを上書きします
注:strutsでは、servletactioncontext.getResponse()を使用してreponeオブジェクトを取得できます
Cookieを読んでください
Cookieを読むことは、リクエストからすべてのCookieのみを取得し、ループで繰り返すことができます。
Strutsでは、ServletactionContext.getRequest()を使用してリクエストオブジェクトを取得できます
//リクエストからCookieを取得すると、Cookie cookie [] cookie = request.getCookies()の配列が表示されます。 // if(cookies!= null && cookies.length> 0){// cookieを設定していない場合、(cookie cookie:cookie){...}}のnullを返します。 Cookieを削除します
Cookieを削除する場合、Cookieの寿命を0に設定するだけです。
cookie [] cookie = request.getCookies(); if(cookies!= null && cookies.length> 0){for(cookie cookie:cookie){string name = cookie.getname(); // if(name.comPareTo( "Target-Key")== 0){// lifetimeを0 cookie.setmaxage(0)に設定する場合、削除する必要があるCookieを見つけます。 // Response.AddCookie(Cookie)に戻ります。 }}}4つのCookieのSetPathメソッドが使用されます。
通常のCookieは1つのアプリでのみ共有できます。つまり、Cookieはそれを作成したアプリによってのみ取得できます。
1.メソッドは、同じアプリケーションサーバー内で共有できます。
ネイティブTomcat/WebAppの下には、WebApp_aとwebApp_bの2つのアプリケーションがあります。
1)webApp_aの下にあるCookieセットは、webApp_bで取得できないことがわかります。パスは、デフォルトでCookieを生成するアプリケーションのパスです。
2)webApp_aの下でCookieを設定する場合は、Cookie.setPath( "/")を追加します。またはcookie.setpath( "/webapp_b/");
webApp_bの下でCASによってCookieセットを入手できます。
3)ここのパラメーターは、アプリケーションサーバー(Tomcatの下のWebAppなど)によって保存されているアプリケーションフォルダーのルートディレクトリに関連しているため、cookie.setpath( "/");その後、Cookieは、WebAppフォルダーの下のすべてのアプリケーションで共有できます。
つまり、CASアプリケーションによって設定されたCookieは、WebApp_Bアプリケーションでのみ取得でき、このCookieを生成するWebApp_Aアプリケーションでさえも使用できません。
4)cookie.setpath( "/webApp_b/jsp")またはcookie.setpath( "/webapp_b/jsp/")を設定する場合、cookieはwebapp_b/jspでのみ取得できますが、jspフォルダーの外ではクッキーを取得できません。
5)cookie.setpath( "/webapp_b")を設定します。 CookieはWebApp_Bでのみ使用できるため、Cookieを生成するWebApp_aでCookieを取得できないことを意味します。
6)複数のCookie.setPath( "xxx")がある場合;声明、最後のものは勝つものとする。
5 Cookie.SetDomainメソッド設計クロスドメイン共有
マシンAが配置されているドメイン:home.langchao.com、aがアプリケーションwebapp_aを持っています
Bマシンが配置されているドメイン:jszx.com、bにはアプリケーションwebapp_bがあります
1)webApp_aでcookieを設定するときは、cookie.setdomain( "。jszx.com")を追加します。 WebApp_Bの下でCookieを取得できるように。
2)WebApp_BにアクセスするためにURLを入力するときは、ドメイン名を入力して解決する必要があります。たとえば、入力する場合:http://lc-bsp.jszx.com:8080/webapp_bマシンAで、クライアントにwebApp_aによってCookieセットを取得できますが、入力するときはhttp:// localhost:8080/webApp_b、クッキーを取得できません。
3)cookie.setDomain( "。JSZX.com");デフォルトのhome.langchao.comで共有することもできます
上記の決まり文句は、JavaでのCookieの使用についての話は、私があなたと共有するすべてのコンテンツです。私はそれがあなたに参照を与えることができることを願っています、そしてあなたがwulin.comをもっとサポートできることを願っています。