Cookie
クッキーを片付けたいです。
Cookie
1.Cookie卵
ハイパーテキストの記録ファイル(HTTP)の一種として、インターネットユーザが任意のウェブサイトにアクセスする際に、そのウェブサイトで使用するサーバを介してインターネットユーザコンピュータにインストールされる小さな記録情報ファイルを指す.HTTP Cookie、Web Cookie、ブラウザCookieとも呼ばれる.
やはり正義だけを見ている時は、全く感じませんでした.ほほほ
でもとりあえず読んで、クッキーの特性を知ると
2.ビスケットの特性
3.クッキー動作図
クッキーの動きを簡単に画像で表現
このように表現することができます.簡単な例は次のとおりです.
4.SetCookieServeret(サーバ側でCookieを作成してクライアントに渡し、クライアント側でCookieを保存する簡単な例)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset= 'UTF-8'>");
out.println("<title>home</title>");
out.println("</head>");
out.println("<body>");
String name = getServletName(); // = getServletConfig.getServletName(); 와 같음
out.println("<h3>" + name + "</h3>");
//시간 정보
String time = new Date().toString().replace(" ", "-");
//쿠키 생성
Cookie cookie = new Cookie("time",time); // 쿠키는 문자열 기반이라 name,value 모두 String
//쿠키의 유효시간을 설정( 만약 설정하지 않으면 브라우저를 끄면 쿠키도 사라진다 )
cookie.setMaxAge(60); //60초 동안 유지
//쿠키를 클라이언트 측으로 전송
response.addCookie(cookie);
out.println("cookie를 클라이언트 측으로 전달<br><br>");
out.println("cookie 에 저장한 time 정보 : " + time);
out.println("<br><br><a href = GetCookieServlet>GetCookieServlet에서 저장한 time cookie정보확인");
out.println("</body>");
out.println("</html>");
out.close();
}
jspを使っていないので、とても複雑に見えますが、doGet()メソッドは、SetCookieServeretという名前のServeretからのみ抽出されます.
Cookieの内容についてだけ必要なので、必要な情報は
//시간 정보
String time = new Date().toString().replace(" ", "-");
//쿠키 생성
Cookie cookie = new Cookie("time",time); // 쿠키는 문자열 기반이라 name,value 모두 String
//쿠키의 유효시간을 설정( 만약 설정하지 않으면 브라우저를 끄면 쿠키도 사라진다 )
cookie.setMaxAge(60); //60초 동안 유지
//쿠키를 클라이언트 측으로 전송
response.addCookie(cookie);
out.println("cookie를 클라이언트 측으로 전달<br><br>");
out.println("cookie 에 저장한 time 정보 : " + time);
この部分が必要です.5.SetCookieServiceletコード説明
5.1 timeというStringタイプ変数の場合、toStringによって現在の日付と時間を通知するDateがString値に変換され、スペースが含まれます.
★ビスケットは空いてはいけないので★
スペースをreplace関数で「-」文字に変換
5.2クッキーもsetMaxAgent()でCookieの有効時間を設定します.
このセクションを設定しないと、ブラウザが終了するとクッキーも一緒に終了します.
5.3 response.addCookie(cookie); 現在作成しているCookieをクライアントに送信します.
これは、サーバ側からCookieを生成してクライアントに渡し、クライアント側にCookieを格納する簡単な例です.
6.GetCookieServeret(クライアント接続後、サーバー側がクライアント上のCookieを確認し、特定のCookie(timeという名前)の値を取得して画面を出力する例)
//client request로부터 cookie정보를 받아온다
//System.out.println(request.getCookies()); //web application에서 저장한 쿠키가하나 이상존재하지 않으면 null이 반환
Cookie[] cookies = request.getCookies();
if(cookies !=null) {
//cookies 배열을 for loop 이용해 반복하면서 cookie의 name이 time인 cookie의 value를 화면에 제공
//cookie의 getName(),getValue()메서드를 이용\
boolean flag = false;
for(int i = 0;i<cookies.length;i++) {
if(cookies[i].getName().equals("time")){
out.println("클라이언트로부터 받아온 time cookie value" + cookies[i].getValue());
flag = true;
break;
}
}
if(flag == false) {
out.println("time 쿠키가 존재하지 않습니다");
}
}else {
out.println("쿠키가 존재하지 않습니다.");
}
今回,GetCookieServeretのdoGet()メソッドはCookieに関するコードのみをインポートした.7.GetCookieServiceletコード説明
7.1 request.getCookies()はCookie値を配列として返しますので、Cookie配列に入れます.
7.2クッキー配列の値がnullでない場合、クッキーの名前が時間と同じである場合、getValue()に値を渡します.そうでない場合、出力クッキーは存在しません.
7.3しかし、クッキーの名前はnameではなく、別のクッキーが存在し、nameというクッキーは存在しない可能性がありますので、booleanタイプのflagを宣言し、if文でその存在を教えてください.
最後に。
setCookieとgetCookieの例については、前述のsetCookieサーブレットとgetCookieの例を参照してください.
画面に出力された値と、ブラウザ上のf 12-アプリケーション-ブラウズ-cookies-ブラウザ名のクッキーの情報を一緒にチェックして比較することもできます.
Reference
この問題について(Cookie), 我々は、より多くの情報をここで見つけました https://velog.io/@moon960427/Cookieテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol