import jakarta
.servlet
.ServletException
;
import jakarta
.servlet
.annotation
.WebServlet
;
import jakarta
.servlet
.http
.Cookie
;
import jakarta
.servlet
.http
.HttpServlet
;
import jakarta
.servlet
.http
.HttpServletRequest
;
import jakarta
.servlet
.http
.HttpServletResponse
;
import java
.io
.IOException
;
import java
.net
.URLDecoder
;
import java
.net
.URLEncoder
;
import java
.nio
.charset
.StandardCharsets
;
import java
.text
.DateFormat
;
import java
.text
.SimpleDateFormat
;
import java
.util
.Date
;
@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
response
.setContentType("text/html;charset=UTF-8");
Cookie
[] cookies
= request
.getCookies();
boolean flag
= false;
if(cookies
!= null
&& cookies
.length
> 0){
for (Cookie cookie
: cookies
) {
String name
= cookie
.getName();
if("lastTime".equals(name
)){
flag
= true;
Date date
= new Date();
SimpleDateFormat sdf
= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str_date
= sdf
.format(date
);
System
.out
.println("编码前:" + str_date
);
str_date
= URLEncoder
.encode(str_date
, StandardCharsets
.UTF_8
);
System
.out
.println("编码后:" + str_date
);
cookie
.setValue(str_date
);
cookie
.setMaxAge(60 * 60 * 24 * 30);
response
.addCookie(cookie
);
String value
= cookie
.getValue();
System
.out
.println("解码前:" + value
);
value
= URLDecoder
.decode(value
, StandardCharsets
.UTF_8
);
System
.out
.println("解码后:" + value
);
response
.getWriter().write("欢迎再次归来,您上次登陆时间为" + value
);
break;
}
}
}
if (cookies
== null
|| flag
== false || cookies
.length
== 0){
Date date
= new Date();
SimpleDateFormat sdf
= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str_date
= sdf
.format(date
);
System
.out
.println("编码前:" + str_date
);
str_date
= URLEncoder
.encode(str_date
, StandardCharsets
.UTF_8
);
System
.out
.println("编码后:" + str_date
);
Cookie cookie
= new Cookie("lastTime", str_date
);
cookie
.setMaxAge(60 * 60 * 24 * 60);
response
.addCookie(cookie
);
response
.getWriter().write("欢迎首次登陆");
}
}
@Override
protected void doGet(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
this.doPost(request
, response
);
}
}