// Date() のコンストラクターは次のとおりです。ミリ秒単位で設定 Unit
// .getTime() メソッドは時間をミリ秒単位で返します
// したがって、15 分の有効期限を設定するには、60000 ミリ秒に 15 分を掛けます
var Expiration = new Date(( new Date( )).getTime() 15 * 60000);
document.cookie = "username="escape(form.username.value) "; 期限切れ =
期限切れ.toGMTString() "; path= " "/ " "; _
domain=" "mydomain.com" "; secure";
// 特定の Cookie 値を読み取る関数を定義します。 【指定した名前のCookieオブジェクトを取得! ]
function getCookie(cookie_name)
{
var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name);
// インデックスが見つかった場合は、次のことを意味します。 Cookie が存在します ,
// それ以外の場合は、Cookie が存在しないことを意味します。
if (cookie_pos != -1)
{
// 値の先頭に cookie_pos を置き、値に 1 を加えるだけです。
cookie_pos = cookie_name.length 1;
var cookie_end = allcookies.indexOf(";", cookie_pos);
if (cookie_end == -1)
{
cookie_end = allcookies.length ;
}
var value = unescape(allcookies.substring(cookie_pos, cookie_end));
}
}
// 関数の呼び出し
var cookie_val = getCookie("ユーザー名");
3. Cookie の有効期限を設定しても、閉じたときに自動的に消去されるのはなぜですか?
JSP が Cookie をどのように操作するかを勉強してみませんか?
Cookie の概念:
Cookie の形式は実際にはプレーン テキスト情報であり、サーバーからクライアントに送信されます。 Web ページに保存され、クライアントのハード ドライブの指定されたディレクトリに保存されます。Cookie は重大なセキュリティ上の脅威を引き起こす可能性があると言われていますが、実際はそうではありません。サーバーが Cookie を読み取るときは、サーバーに関連する情報のみが読み取られます。さらに、ブラウザでは通常 300 個の Cookie のみを保存できますが、各サイトでは最大 20 個の Cookie を保存できるため、スペースをまったく占有しません。たとえば、Cookie の存続時間が設定されている場合、Cookie は 1 分後にブラウザによって削除されます。
Cookie バージョン:
現在 2 つのバージョンがあります :
バージョン 0: Netscape によって策定されました。互換性を維持するために、Java は現在バージョン 0 のみをサポートしています。スペース、角括弧、括弧、等号 (=) は使用できません。 )、カンマ、二重引用符、またはスラッシュが Cookie コンテンツに含まれています。
バージョン 1: RFC 2109 文書に基づいており、上記で制限されている文字はすべて使用できます。ただし、互換性を維持するために、これらの特殊文字はできるだけ使用しないでください。 JSP での操作: 型 メソッド名 メソッドの説明
String getComment() Cookie 内のコメントを返します。コメントがない場合は null 値を返します。
String getDomain() に適用されるドメイン名を返します。 getDomain() メソッドを使用してブラウジングを示す サーバーは同じドメイン内の他のサーバーに Cookie を返しますが、通常、Cookie は送信元のサーバーとまったく同じ名前のサーバーにのみ返されます。ドメイン名はドットで始まる必要があることに注意してください。
int getMaxAge() は、Cookie の有効期限が切れるまでの最大時間を秒単位で返します。
String getName() は Cookie の名前を返します。
String getPath() は Cookie が適用されるパスを返します。パスが指定されていない場合、Cookie は現在のページが存在するディレクトリとそのサブディレクトリ内のすべてのページに返されます。
boolean getSecure() は、ブラウザが安全なプロトコルを介して Cookie を送信する場合は true 値を返し、ブラウザが標準プロトコルを使用する場合は false 値を返します。
String getValue() は Cookie の値を返します。 getValue/setValueについては後ほど詳しく紹介します。
int getVersion() は、Cookie が準拠するプロトコルのバージョンを返します。
void setComment(String purposes) Cookie にコメントを設定します。
void setDomain(String pattern) Cookie に Cookie のドメイン名を設定します。
void setMaxAge(int expiry) Cookie の有効期限を秒単位で設定します。 。
void setPath(String uri) は Cookie のパスを指定します。
void setSecure(boolean flag) HTTPS や SSL など、ブラウザで使用されるセキュリティ プロトコルを示します。
void setValue(String newValue) は、Cookie の作成後に新しい値を設定します。
void setVersion(int v) Cookie が従うプロトコルのバージョンを設定します
簡単な例
1. Cookie の書き込み --- writecookie.jsp
---- - ------------------------------------------------- - ------
<% @ page contentType="text/html; charset=ISO8859_1" %>
<%
Cookie _cookie=new Cookie("user_delfancom", "delfan"); ); // Cookie の存続時間を 30 分に設定します
response.addCookie(_cookie) // クライアントのハードディスクに書き込みます
out.print("Cookie 書き込み完了");
2. Cookie.jsp を読み取ります --- readcookie.jsp
-------------------------- ----- ----------------------------------
Cookie cookies[]=request.getCookies(); // 読み取りすべての Cookie を該当するディレクトリに保存します。
Cookie sCookie=null
String sname=null;
if(cookies==null); Cookie はありません
out.print ("none any cookie");
else
{
out.print(cookies.length "
"); =0;i{
sCookie=cookies[i];
sname=sCookie.getName(); getValue();
out.println(sname "->" name "
");
}
}
%>
注意すべき 2 つのこと 質問
:
1. Cookie には該当するパスに問題があります。つまり、writecookie.jsp と readcookie.jsp が合意されたディレクトリに配置されるかどうかに問題があります。同じディレクトリにある場合は、readcookie.jsp が配置されているパスとして、パスを設定する必要があります。2. Cookie 配列を読み取るときに、多くのコードが空 (null) であるかどうかを判断する必要があります。インターネットではこの点は書かれていません。