クッキー - ヒントのページにアクセスするための時間

      ケース:最終アクセス時刻を覚えておいてください
        。1.要件
            、それは最初の訪問の場合1.サーブレットを、プロンプトは:こんにちは、あなたの最初の訪問を歓迎します。
            2.それは最初の訪問は、プロンプトではない場合:再びようこそ、あなたの最後の訪問時間は:時刻文字列を表示します

        。2.分析:
            1.クッキーを使用して達成することができる
            というファイルがあるかどうかを判断するために、サーバ2.サーブレットをクッキーのlastTime
                1は、次のとおりにない最初の訪問
                    1.応答データ:再びようこそ、あなたの最後の訪問時間:2018年6月10日11時50分20秒
                    2のライトバッククッキー:lastTime = 2018インディアン6越10なかっ午前11時50分01秒
                2なし:への最初の訪問である
                    1.応答データ:こんにちは、あなたの最初の訪問に歓迎
                    lastTime = 2018インディアン6越10、11時50分00秒:2.書き込みクッキーをバック

 

注意点:

エンコードの流れ1.取得のPrintWriter前に設定する必要があります

 response.setContentType( "テキスト/ HTML;のcharset = UTF-8");

2.クッキーは、エンコードおよびデコードするために、スペースなどの特殊文字を含めることはできません

1  パッケージcn.itcast.web.servlet。
2  
3  インポートjavax.servlet.ServletException。
4  インポートjavax.servlet.annotation.WebServlet。
5  輸入のjavax.servlet.http.Cookie。
6  インポートjavax.servlet.http.HttpServlet。
7  インポートするjavax.servlet.http.HttpServletRequest。
8  輸入のjavax.servlet.http.HttpServletResponse。
9  インポートにjava.io.IOException。
10  インポートjava.net.URLDecoder。
11  インポートjava.net.URLEncoder。
12  インポートjava.text.SimpleDateFormatの、
 13である インポートjava.util.Date;
 14  
15 @WebServlet( "/ CookieServlet" 16の パブリック クラス CookieServlet 延びHttpServletを{
 17      保護 ボイドのdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローIOExceptionが{
 18である         // PrintWriterを取得します応答メッセージボディを設定する前に、ストリームの符号化データフォーマット
19。          response.setHeader(「コンテンツタイプ」、「テキスト/ HTML;のcharset = UTF-8」);
 20は 
21である         。// 1.すべてのクッキーを取得し
22である          クッキー[]クッキー= request.getCookies()。
23          ブールフラグ=  ;    // 名前がlastTimeクッキーと呼ばれていない
 24  
25          // クッキーアレイを横断2. 
26          IF(クッキー=!ヌル){
 27              (クッキークッキー:クッキー){
 28                  IF(Cookie.getName()。等号( "lastTime")){   // 最初のアクセスではない
29                      フラグに= trueに30  
31である                      文字列値= cookie.getValue();
 32                      値= URLDecoder.decode(値、 "UTF-8");   // URLデコード
33                     。response.getWriter()書き込み(+の「あなたの最終アクセス時間は、おかえりなさい」値);
 34  
35                      // クッキー値の値ログイン時に、クッキー再送
36                      日DATE = 新しい新しい日付を();
 37 [                      てSimpleDateFormat SDF = 新しい新しいてSimpleDateFormat( "日付YYYY、MM-DD HH:MM:SS" );
 38である                      文字列str_date = sdf.format(日付);
 39                      str_date = URLEncoder.encode(str_dateは、 "UTF-8"。 );     // URLエンコードを、エラーがURLエンコードされないであろう場合str_dateは、スペースが含まれているので
40                      cookie.setValue(str_date);
 41であります                     cookie.setMaxAge(30 * 24 * 60 * 60 );  //設定クッキー生存時間
 42は                     response.addCookie(クッキー);
 43である                     BREAK ;
 44である                 }
 45              }
 46れる         }
 47  
48          IF(クッキーは== NULL ||フラグに== ){   // 最初の訪問
49              response.getWriter()ライト( "ハロー<H1>、<H1>あなたの最初の訪問に歓迎しています。" );
 50  
51              日DATE = 新しい新しい日付();
 52              のSimpleDateFormat SDF = 新新SimpleDateFormat( "YYYY年MM月DD日HH:MM:SS" )。
53              文字列str_date = sdf.format(日付)。
54              str_date = URLEncoder.encode(str_date、 "UTF-8" )。
55              クッキークッキー= 新しいクッキー( "lastTime" 、str_date)。
56              cookie.setMaxAge(30 * 24 * 60 * 60 )。
57              response.addCookie(クッキー)。
58          }
 59  
60  
61      }
 62  
63      保護された ボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスローServletExceptionがは、IOException {
 64          この.doPost(リクエスト、レスポンス)。
65      }
 66 }

 

おすすめ

転載: www.cnblogs.com/FengZeng666/p/11615958.html