JSPクッキー処理2024 年の最新の入門チュートリアル。このコースでは クッキー分析,サーブレットクッキーメソッド,JSPを使用してCookieの設定,クッキーを読むためにJSPを使用して、,クッキーを削除するJSP使用, について学習できます。
クッキーは、クライアントに格納されているテキストファイルであり、彼らはトラック情報の多くを保存します。 サーブレット技術の基礎では、JSPは、明らかにHTTPクッキーのサポートを提供することができます。
典型的には、リピート訪問者を識別するための3つのステップがあります。
この章では、設定またはCookieの方法をリセットし、そのアクセス方法とどのようにそれらを削除する方法をお教えします。
以下のように、中国のエンコードとデコードのニーズを処理するJSPクッキー:
String str = java.net.URLEncoder.encode("中文"); //编码 String str = java.net.URLDecoder.decode("编码后的字符串"); // 解码
クッキーは、通常のHTTPヘッダ情報に(JavaScriptがブラウザのクッキーに直接設定することができますが)設定されています。 JSPは、サーバーに以下の情報を送信するためにCookieヘッダーを設定します。
HTTP/1.1 200 OK Date: Fri, 04 Feb 2015 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=w3big; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=w3write.com Connection: close Content-Type: text/html
あなたが見ることができるように、Set-Cookieヘッダーは、キーと値のペア、GMT(グリニッジ標準時)の時間、パス、ドメイン名が含まれています。 キーと値のペアは、URLとしてエンコードされます。 フィールドの妥当性は、あなたがこのクッキーを削除することができますどのような時間の後にブラウザに指示するコマンドです。
お使いのブラウザがクッキーを格納するように構成されている場合は、期限が切れるまで、それは情報を保存します。 ユーザーがアクセス任意のページには、クッキーのパスとドメイン名と一致した場合、ブラウザはサーバーにCookieを再送信します。 ブラウザ側のヘッダは次のようになります。
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
JSPのスクリプトは、リクエストオブジェクトのgetCookiesクッキーオブジェクトの配列を返します()メソッドによってクッキーにアクセスします。
次の表は、一般的に使用される方法Cookieのオブジェクトを示しています。
いいえ。 | メソッド と 説明 |
---|---|
1 | ます。public void setDomain(文字列パターン) Cookieドメインを設定し、そのようなw3cschool.cc |
2 | パブリック文字列getDomain() クッキーのドメインを取得し、そのようなw3cschool.cc |
3 | ます。public void setMaxAge(int型の有効期限) 秒単位で、Cookieの有効期限を設定すると、デフォルトでは、生存期間の現在のセッションに対して有効です。 |
4 | 公共int型getMaxAge() Cookieの有効期限を取得し、秒単位で、デフォルトでは、ブラウザに住んであろうクッキーが閉じていることを示す、-1であります |
5 | 公共の文字列のgetName() クッキーの名前を返し、それが作成された後、名前を変更することはできません |
6 | 公共ボイドのsetValue(文字列NEWVALUE) Cookieの値を設定します。 |
7 | 公共の文字列のgetValue() Cookieの値を取得します。 |
8 | 公共ボイドSETPATH(文字列URI) クッキーのパスを設定すると、デフォルトでは、すべてのページディレクトリの現在のURLで、下のすべてのサブディレクトリ |
9 | パブリック文字列ある、getPath() クッキーのパスを取得します。 |
10 | 公共ボイドsetSecure(ブールフラグ) クッキーが送信を暗号化するかどうかを示すために、 |
11 | ます。public void setComment(String型の目的) クッキーの目的を説明するコメントを設定します。 ブラウザのクッキーがユーザに提示すると、コメントは非常に有用であろう |
12 | パブリック文字列GETCOMMENT() なしがある場合、Cookieの目的を説明するコメントを返し、またはnull |
使用JSPはクッキーが3段階で構成されて設定します。
(1)Cookieオブジェクトを作成します。パラメータとして、クッキーの名前と値を使用して、コンストラクタのクッキーを呼び出すことを、彼らは文字列です。
Cookie cookie = new Cookie("key","value");
名前と値は、スペースまたは次の文字を含めることはできないことを心に留めておくようにしてください:
[ ] ( ) = , " / ? @ : ;
(2)設定が有効である:コールsetMaxAge()関数は、クッキーが(秒)以内に有効である期間を示します。 以下は、24時間有効に設定します。
cookie.setMaxAge(60*60*24);
(3)HTTPレスポンスヘッダにクッキーを送信します。クッキーを追加するために、HTTPヘッダに対応するためにresponse.addCookie()関数を呼び出します。
response.addCookie(cookie);
main.jspファイルのコードは次のとおりです。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <% // 编码,解决中文乱码 String str = URLEncoder.encode(request.getParameter("name"),"utf-8"); // 设置 name 和 url cookie Cookie name = new Cookie("name", str); Cookie url = new Cookie("url", request.getParameter("url")); // 设置cookie过期时间为24小时。 name.setMaxAge(60*60*24); url.setMaxAge(60*60*24); // 在响应头部添加cookie response.addCookie( name ); response.addCookie( url ); %> <html> <head> <title>设置 Cookie</title> </head> <body> <h1>设置 Cookie</h1> <ul> <li><p><b>网站名:</b> <%= request.getParameter("name")%> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
以下は、クライアントmain.jspファイルにデータを送信し、Cookieを設定するには、GETメソッドを使用して単純なHTMLフォームです。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>本教程(w3write.com)</title> </head> <body> <form action="main.jsp" method=GET> 站点名: <input type="text" name="name"> <br /> 网址: <input type="text" name="url" /> <input type="submit" value="提交" /> </form> </body> </html>
Test.htmファイルに上記のHTMLコードを保存します。
(main.jsp同じディレクトリを持つ)のWebContent JSPプロジェクトの下で、現在のディレクトリにファイルを配置します。
訪問HTTPで:// localhostを:8080 / testjsp / testというmain.jspファイルにフォームデータを提出し、GIFのデモは以下のとおり:
「サイト名」と「URL」を入力してみてください、そして、送信ボタンをクリックし、それはあなたの画面で「サイト名」と「URL」を表示し、「サイト名」と「URL」2クッキーを設定します。
クッキーを読みたい、あなたはそれぞれのクッキーを取得する方法のgetName()とのgetValue()メソッドを使用してアレイを横断その後のjavax.servlet.http.Cookieオブジェクトの配列を取得するためにrequest.getCookies()メソッドを呼び出して、する必要があります。名前と値。
のは、クッキーの最後の例を読んでみましょう、次はcookie.jspファイルのコードです:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>获取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 获取cookies的数据,是一个数组 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> 查找 Cookie 名与值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> </body> </html>
ブラウザアクセスした後、出力は次のようになります。
削除クッキーは非常に簡単です。 あなたはクッキーを削除したい場合は、ライン上で行うには、以下の手順します。
以下の手順では、第二ランcookie.jspあるときに「名前」という名前のCookieを削除し、名前はnullになります。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>获取 Cookie</title> </head> <body> <% Cookie cookie = null; Cookie[] cookies = null; // 获取当前域名下的cookies,是一个数组 cookies = request.getCookies(); if( cookies != null ){ out.println("<h2> 查找 Cookie 名与值</h2>"); for (int i = 0; i < cookies.length; i++){ cookie = cookies[i]; if((cookie.getName( )).compareTo("name") == 0 ){ cookie.setMaxAge(0); response.addCookie(cookie); out.print("删除 Cookie: " + cookie.getName( ) + "<br/>"); } out.print("参数名 : " + cookie.getName()); out.print("<br>"); out.print("参数值: " + URLDecoder.decode(cookie.getValue(), "utf-8") +" <br>"); out.print("------------------------------------<br>"); } }else{ out.println("<h2>没有发现 Cookie</h2>"); } %> </body> </html>
ブラウザを介してアクセスし、出力は次のようになります。
もう一つの訪問にhttp:// localhost:8080 / testjsp / cookie.jsp、以下の結果が得られます:
あなたは名前幅= Cookieが消えていたの「70%」、「名前」を参照してくださいすることができます。
また、手動でお使いのブラウザでクッキーを削除することができます。 IEブラウザは、[ツール]メニューをクリックすることで、あなたはすべてのクッキーを削除することができ、Cookieの削除]をクリックし、[インターネットオプション]を選択します。