로그인 쿠키 시간 케이스 1월 27,2020

마지막 액세스 시간을 기억
: 1. 요구
  는 첫 번째 방문, 프롬프트의 경우, 1. 서블릿 : 안녕하세요, 귀하의 첫 번째 방문을 환영합니다.
  2. 첫 번째 방문, 프롬프트가 아닌 경우 : 환영 다시, 당신의 마지막 방문 시간 : 표시 시간 문자열

2. 분석 :
  1. 쿠키 사용하여 수행 할 수있는
  쿠키의 이름 lastTime이 있는지 여부를 확인하기 위해 서버 2에서 서블릿을
    1은 다음과 같습니다하지에 처음 방문
      1. 응답 데이터 : 환영 다시, 당신의 마지막 방문 시간 : 2018년 6월 10일 11시 50분 20초
      2. 쓰기 다시 쿠키 : lastTime = 2018년 6월 10일 11시 50분 1초
    2. 번호 :에 첫 번째 방문입니다
      1. 응답 데이터 : 안녕하세요, 오신 것을 환영합니다 처음 방문
    2. 쓰기 다시 쿠키 : lastTime = 2018 니안 6 왕위 10 리 11시 50분 1초

3. 코드 구현 :

에 대한 패키지 페널티 쿠키, 

가져 오기 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.net.URLDecoder;
 오기 java.net.URLEncoder;
 오기 java.text.SimpleDateFormat에,
 오기 java.util.Date;
 / ** 
 서버 서블릿의 여부를 판정한다 그것은 쿠키의 lastTime를 임명했다 
 가 1 : 그것은 첫 번째 방문하지  
     1. 응답 데이터 : 환영 다시, 당신의 마지막 방문 시간
     2. 쓰기 다시 쿠키
 2. 번호 : 그것은 첫 번째 방문입니다 
     안녕하세요, 귀하의 첫 번째 방문을 환영합니다 : 1. 응답 데이터 
     2. 쓰기 다시 쿠키 : 
 * / 
@WebServlet ( "/에 CookieTest" )
 공개  수업 에 CookieTest 확장 HttpServlet을 {
     보호  무효 의 doPost (HttpServletRequest의 요청, 응답은 HttpServletResponse를) 발생 ServletException을, IOException가 { 
        response.setContentType을 ( "텍스트 / HTML;. 캐릭터 세트 = UTF-8" );
         // 1. 모든 쿠키를 얻을 
        쿠키 [] = 쿠키 request.getCookes ()를을 ();
         부울 에서 깃발 = false로 ; //어떤 쿠키가 lastTime 없다
         // 2. 트래버스 모든 쿠키 
        IF (쿠키 =! 널 (null) && cookies.length! = 0 ) {
             에 대한 (쿠키 쿠키 : 쿠키) {
                 // 3. 가져 오기 모든 쿠키 
                문자열 = cookieName Cookie.getName ( );
                 // 4. 결정 상륙 여부 
                만약에 ( "lastTime" .equals (cookieName)) {
                     // 하지 처음으로 착륙 
                    깃발 = true로 ;
                     // 마지막 로그인 시간 값을 얻을 
                    문자열 = DATE_FORMAT 쿠키를. getValue ();
                     // 응답 데이터
                    에서 System.out.println ( "디코딩하기 전에"+ DATE_FORMAT)
                     // URL을 디코딩 : 
                    DATE_FORMAT = URLDecoder.decode (DATE_FORMAT "UTF-8." ) 
                    에서 System.out.println ( "디코딩"+ DATE_FORMAT); 
                    . response.getWriter () 쓰기 ( "환영 다시, 당신의 마지막 방문 시간 :"+ DATE_FORMAT); 

                    // 시간 
                    날짜 날짜 = 새로운 새로운 날짜 (); 
                    SimpleDateFormat의 SDF = 새로운 새로운 SimpleDateFormat의 ( "YYYY 년 MM 월 DD 일 HH : MM : SS " ); 
                    문자열 TIMEVALUE = sdf.format (DATE); //은 이 시간 착륙 변환됩니다
                    에서 System.out.println ( "현재 시간이"+ TIMEVALUE) 

                    에서 System.out.println ( "인코딩하기 전에"+ TIMEVALUE)
                     // 코딩 URL 
                    TIMEVALUE = URLEncoder.encode (TIMEVALUE ". UTF-8" ); 
                    에서 System.out.println는 ( "후 코딩"+ TIMEVALUE)
                     // 설정된 쿠키 생존 시간 
                    cookie.setMaxAge (24 * 60 * 60 * 30); // 개월 
                    cookie.setValue (TIMEVALUE) 
                    response.addCookie ( 쿠키) 
                    BREAK ; 
                } 
            } 
        } 
        IF (쿠키 == 널을 || cookies.length == 0 || 플래그 == false로 ) {
             // 아니, 처음 액세스
             // 세트 쿠키 값
             //는 , 현재 시간 문자열을 가져옵니다 쿠키의 값을 재설정 쿠키를 재전송 
            날짜 날짜 = 새로운 새로운 날짜를 (); 
            SimpleDateFormat의 자위대 = 새로운 새로운 SimpleDateFormat의 ( "YYYY 년 mM의 월 DD 일 HH : MM : SS를" ); 
            문자열 DATE_FORMAT = sdf.format (일); 
            에서 System.out.println을 ( "코딩 "+ : 전에 , DATE_FORMAT)
             // URL을 인코딩 
            . UTF-8"DATE_FORMAT = URLEncoder.encode (DATE_FORMAT를 " );
            에서 System.out.println는 ( "코드"+  DATE_FORMAT);
            쿠키 쿠키 = 새로운 새 쿠키 ( "lastTime" , DATE_FORMAT);
             // 쿠키 생존 시간 설정 
            cookie.setMaxAge을 (60 * 60 * 24 * 30); // 개월 
            응답 .addCookie (쿠키) 
            response.getWriter () 쓰기는 (. "안녕하세요 <H1>, 귀하의 첫 번째 방문 </ H1>에 오신 것을 환영합니다" ); 
        } 
    } 

    보호  무효 (HttpServletRequest로, HttpServletResponse를 응답 요청)의 doGet 발생 ServletException을, IOException가 {
         은이 .doPost (요청, 응답); 
    } 
}

 

추천

출처www.cnblogs.com/yyanghang/p/12236108.html