JSP 15強—Cookie

13740 ワード

Cookie(Cookie)


  • クッキー(cookie)は、Webブラウザに保存されたデータであり、Webサーバに要求を送信する際にWebサーバに送信する

  • さぎょうモード


  • CookieがWebブラウザに格納されている場合、WebブラウザはCookieが削除されるまでCookieをWebサーバに送信します.

  • Cookieを使用してWebアプリケーションを保存する際に継続的に保持する必要がある情報
  • クッキーの構成


    コンポーネント
  • 名:各Cookieを区別するための名前
  • 値:Cookie名に関連する値
  • 有効時間:Cookie保持時間
  • ドメイン:Cookieを送信するためのドメイン
  • パス:Cookieを送信する要求パス
  • Cookie名の制約

  • クッキーの名前にはアスキーコードのアルファベットと数字しか含まれていません.

  • カンマ(,),セミコロン(;),スペース("")などの文字を含めることはできません.

  • $で始まることはできません.

  • 通常、Cookie名の作成にはアルファベットと数字のみが使用されます

  • Cookie値の作成時に適切な符号化を行う

  • 他の有効時間が指定されていない場合は、Webブラウザを終了すると同時にCookieが削除されます.Cookieを指定したドメインまたはパスにのみ転送するように制限することもできます
  • JSPでのCookieの作成/読み込み

  • Cookieクラスを使用してCookie
  • を作成
    <%
        Cookie cookie = new Cookie("cookieName", "cookieValue");
        response.addCookie(cookie);
    %>

  • クライアントから送信されたCookieの読み取り
    Cookie[] cookies = request.getCookies();

  • 主な読み取り方法
    方法    かいふく   説明getName()    String   クッキーの名前を求めます.
    getValue()     String   クッキーの値段を求める.
  • Cookie値の符号化/復号処理


  • Cookieの値にはハングルと同じ文字は含まれません
    ->Cookieの値をエンコードして値を指定する必要があります

  • Cookie値の処理
    ->値を設定する場合:URLEncoder.encode(「値」、「euc-kr」)
    はい、new Cookie(「name」,URLEncoder.encode(「値」,「euc-kr」)です.
    ->値の問合せ時:URLDecoder.decode(「値」,「euc-kr」)
    Cookie cookie = …;
    String  value  =  URLDecoder.decode(cookie.getValue(), "euc-kr");
  • Cookie値の変更

  • が存在するかどうかを確認し、Cookie値
  • を再設定します.
    Cookie[] cookies = request.getCookies();
    if(cookies!=null && cookies.length > 0){
    	for(int i = 0; i<cookies.length; i++){
    		if(cookies[i].getName().equals("name")){
    			Cookie cookie = new Cookie(name, value);
                		response.addCookie(cookie);
                    }
            }
    }

    Cookieの削除

  • CookieクライアントのsetMaxAgent()メソッドを呼び出すには、パラメータ値0のみを指定します.
    -> Cookie.setMaxAge(0);
  • CookieクラスはCookieを削除する機能を提供していません
  • の有効時間を0として指定する応答ヘッダに追加すると、Webブラウザは関連Cookie
  • を削除する.
    [クッキー]整理
    [原句]クッキーって何?
  • セッションと同様に、
  • はクライアント(クロム)とWebサーバ(トムカード)の間でステータスを維持し続ける方法
  • 状態情報(名称、値)は、クライアント(クロムのCookieリポジトリ)に
  • 格納.
  • Cookieはサーバによって生成される.次にWebサーバに送信される要求にはCookie情報が含まれる
    例)アイデンティティの保存
  • 初めてアクセスしたユーザーは、ログイン認証->IDとパスワードを記録するCookie->を作成し、ユーザーはこのWebサイトにログインします.手順を踏まずに
  • に簡単にアクセスできます.

  • ビスケットの作り方は?
    Cookie cookie = new Cookie("memberid", "admin");
    response.addCookie(cookie);

  • クッキーを削除しますか?
    cookie.setMaxAge(0);
    response.addCookie(cookie);

  • Cookieを作成しますか?
    Cookie cookie = new Cookie(String name, String value);

  • Cookie情報の取得
  • request.getCookie()メソッド
  • の使用
  • Cookieオブジェクトを取得した後、getName()メソッドでCookie名
  • を取得します.
  • getValue()メソッドによりCookieという名前の値
  • を取得する.
    削除
  • Cookie
  • クッキーを保持する必要がない場合、有効期間は
  • です.
  • setMaxAge(0)
  • cookie01.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <!DOCTYPE html>
    <html>
    <head>
    <title>Cookie</title>
    </head>
    <body>
    	<form method="post" action="cookie01_process.jsp">
    		<p>아 이 디 : <input type="text" name="id" /></p>
    		<p>비밀번호 : <input type="text" name="passwd" /></p>
    		<p><input type="submit" value="전송" /></p>
    	</form>
    </body>
    </html>
    

    cookie01_process.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <!DOCTYPE html>
    <html>
    <head>
    <title>Cookie</title>
    </head>
    <body>
    <%
    	//?id=admin&passwd=1234
    	String user_id = request.getParameter("id");
    	String user_pw = request.getParameter("passwd");
    	
    	if(user_id.equals("admin")&&user_pw.equals("1234")){
    		//Cookie 객체 생성
    		Cookie cookie_id = new Cookie("userID", user_id);
    		Cookie cookie_pw = new Cookie("userPW", user_pw);
    		response.addCookie(cookie_id);
    		response.addCookie(cookie_pw);
    		
    		out.print("쿠키 생성 성공!");
    		out.print(user_id + "님 환영합니다");
    	}else{
    		out.print("쿠키 생성 실패");
    	}
    %>
    </body>
    </html>

    cookie02.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <%
    	//쿠키 정보를 얻어오기
    	Cookie[] cookies = request.getCookies();
    	
    	for(int i=0; i<cookies.length; i++){
    		out.print("설정된 쿠키의 속성  [" + i + "] : " + cookies[i].getName() + "<br>");
    		out.print("설정된 쿠키의 속성 값 [" + i + "] : " + cookies[i].getValue() + "<br>");
    		out.print("===============================<br>");
    	}
    
    %>

    detele.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <!DOCTYPE html>
    <html>
    <head>
    <title>Cookie</title>
    </head>
    <body>
    <%
    	Cookie[] cookies = request.getCookies();
    
    	for(int i=0; i<cookies.length; i++){
    		//쿠키 삭제 : 유효기간을 0으로 설정
    		cookies[i].setMaxAge(0);
    		response.addCookie(cookies[i]);
    	}
    	response.sendRedirect("cookie02.jsp");
    	
    %>
    </body>
    </html>