JavaScript Cookie はユーザーの最終ログイン時刻を記録します

目次

目次

序文

1. クッキーとは何ですか?

2. 需要分析

必要:

アイデア:

3. どのような場合に初回訪問、どのような場合に n 回目の訪問であるかを判断する方法は何ですか?

4番目に、コードは次のとおりです

1. ログインページを作成する

2. ログインに成功すると、初回訪問かどうかを判定します

V. まとめ


序文

最近、JavaScript Cookie を学んでいます。授業の後に小さな演習を書きました。その機能は、ユーザーが最後にログインした時刻を記録するものです。コードは最適化されておらず、少し複雑です。


1. クッキーとは何ですか?

1. Cookie は、ブラウザがサーバーにアクセスした後にサーバーからブラウザに送信されるデータです。

2. ブラウザはこのデータを保存する必要があり、簡単に削除しないでください。

3. その後、ブラウザはサーバーにアクセスするたびに、このデータを取得する必要があります。

Cookie は非常にシンプルであり、それが Web 開発における Cookie の意味です。Cookie は通常 2 つの目的に役立ちます。最初の機能はユーザーを識別することです

2. 需要分析


必要:


ユーザーが初めて訪問した場合は「ようこそ、初めての訪問です。」と表示され、
引き続き訪問する場合は「おかえりなさい。前回の訪問時間は yyyy-MM-dd HH:mm です」と表示されます。 :ss

ヒント 1: 訪問時間を節約するには Cookie を使用する必要があります。
ヒント 2: サーブレットを作成し、その中で論理的な判断を行って、作成した「lastVisit」という名前の Cookie が存在するかどうかを判断します。 ヒント 3: 訪問するたびに Cookie を保存します
。これにアクセスしてください Cookie の名前は一貫している必要があります

アイデア:


1. 訪問時間を保存するための Cookie を作成します (Cookie を作成し、Cookie の値を取得します)
2. 初めての訪問であるかどうかを判断するためのサーブレットを作成します
1 回訪問し、Cookie を作成します。Cookie 名は lastVisit です
。時刻を表示する場合、スペースがあるためエンコードとデコードが必要
コード:URLEncoder.encode("date","utf-8");

3. どのような場合に初回訪問、どのような場合に n 回目の訪問であるかを判断する方法は何ですか?

(1) 初回訪問 ①
    現在時刻を取得してブラウザに表示
    ②Cookieオブジェクトを作成、時刻はCookieの値、名前はlastVisit
    ③Cookieをブラウザに送信して保存
(2)N回目の訪問
    ①取得Cookieの値を取得し、lastVisitという名前のCookieを取り出します。 ②Cookie
    の値(最終訪問時刻)を取得します。
    ③最終訪問時刻をブラウザに表示します
    。 ④lastVisitという名前のCookieを更新し、値を現在時刻に設定します。
    ⑤更新したCookieを送信します 保存ブラウザへ

4番目に、コードは次のとおりです

1. ログインページを作成する

コードは次のとおりです(例)。

<%-- 
  IntelliJ IDEA によって作成されました。
  ユーザー: 86155
  日付: 2022-09-06
  時間: 9:27
  このテンプレートを変更するには、[ファイル] | [ファイル] を使用します。設定 | ファイルテンプレート。
</html>

2. ログインに成功すると、初回訪問かどうかを判定します

コードは次のとおりです(例)。

パッケージ com.hqyj.j0905.homeWork; 
/* 
* 再登录の時間
* */ 

import javax.servlet.ServletException; 
インポート javax.servlet.annotation.WebServlet; 
インポート javax.servlet.http.Cookie; 
インポート javax.servlet.http.HttpServlet; 
インポート javax.servlet.http.HttpServletRequest; 
インポート javax.servlet.http.HttpServletResponse; 
インポート java.io.IOException; 
java.io.PrintWriterをインポートします。
java.net.URLEncoderをインポートします。
インポート java.text.SimpleDateFormat; 
java.util.Dateをインポートします。

@WebServlet("/CookieDemo1") 
public class CookieDemo1 extends HttpServlet { 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        doGet(request, response); 

    } 


    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse se response) throws ServletException, IOException { 
        //エンコーディング スタイルを設定します
        response.setContentType( " text/html;charset=utf-8"); 

        // Cookie を取得します
        Cookie[] cookies = request.getCookies(); 
        /// 指定された名前の Cookie が存在するかどうかを示すフラグを定義します
        boolean flag = true; 
        String lastVisit = null; 
        //Cookie が空かどうかを判定
        if (cookies != null || cookies.length != 0) { 
            //Traverse
            for (Cookie cookie : cookies) { 
                //Cookie の名前を取得します
                // String name = cookie.getName(); 
                if (cookie.getName().equals("lastVisit")) { 
                    //lastVisit Cookie があります、すでに n 回目の訪問です
                    flag = false; 

                    // n 回目の訪問

                    // 現在時刻を取得
                    Date date = new Date(); 
                    // 書式設定された日付オブジェクトを取得
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm: ss "); 
                    String formatDate = dateFormat.format(date); 
                    //時刻文字列をエンコードします
                    String timeNow = URLEncoder.encode(formatDate, "utf-8");
                    Cookie cookie1 = new Cookie("lastVisit",timeNow); 
                    response.addCookie(cookie1); 
                    String value = cookie.getValue();//最終訪問時刻
                    //取得した値をデコード
                    String valueDecode = URLEncoder.encode( value, " utf-8"); 
                    cookie.setMaxAge(1 * 30 * 24 * 60 * 60); 
                    //3. 更新された Cookie をブラウザに送信します
                    //response.addCookie(cookie); 
                    // Cookie の値、時間を取得します
                    // cookie.setValue(timeNow); 
                    //応答ページ
                    PrintWriter Writer = response.getWriter(); 
                    Writer.write("おかえりなさい、あなたの最終訪問時間は:" + 値デコード);
                    Break; 
                } 
            } 
        } 
        //初めての訪問。Cookie がないか、lastVisit という名前の Cookie がありません
        if (cookies == null || cookies.length == 0 || flag) { 
            //Cookie の値を設定します
            //現在の時刻の文字列を取得します。設定Cookieの値を書き換えてCookieを再送信
            Date date = new Date(); 
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
            String formatDate = format.format(date); 
            String value = URLEncoder.encode(formatDate, "utf-8"); 
            //2. Cookie オブジェクトの作成
            Cookie cookie1 = new Cookie("lastVisit", value); 
            cookie1.setMaxAge(1 * 30 * 24 * 60 * 60);/ / Cookieの保存期間を1か月に設定します
            //3. Cookie をブラウザに送信して保存します
            response.addCookie(cookie1); 
            //1. 現在時刻をブラウザに表示します
            response.getWriter().write("おかえりなさい、初めての訪問です") ; 
        } 
} 
    }

3. 実験結果は次のとおりです。


 

 

V. まとめ

以上が今日の話ですが、この記事では Cookie のちょっとした練習を簡単に紹介するだけです。

おすすめ

転載: blog.csdn.net/weixin_52809589/article/details/126751648
おすすめ