javaWeb显示用户上次登录时间,如果是第一次登录,则显示“您是第一次访问本网站”
思路:
通过request.getCookies()获取本机cookie并创建cookie数组,对cookie数组进行遍历,
如果没有key为lasttime的cookie,则是第一次访问,
通过response.addCookie()方法添加key为lasttime,value为当前日期的cookie;
如果不是第一次访问,则获取lasttime的value值即为上次访问的时间
/**
* @author 杨某人
*/
@WebServlet("/LastTimeServlet")
public class LastTimeServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
Cookie[] cookies = request.getCookies();//获取本机cookie
String lasttime=null;
if (cookies!=null){
for (Cookie cookie:cookies){
if ("lasttime".equals(cookie.getName())){
lasttime = URLDecoder.decode(cookie.getValue());
out.print("您上次登录的时间为:"+lasttime);
break;//获取到key为lasttime的cookie后,跳出循环
}
}
}
if (lasttime==null){
out.print("您是第一次访问本网站");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Cookie cookie = new Cookie("lasttime",URLEncoder.encode(sdf.format(new Date())));
cookie.setMaxAge(60*60);
response.addCookie(cookie);
}
}
cookie获取和添加value时必须使用URLEncoder.encode()进行转码,不转码value会无效然后就无法addcookie,这里我也不知道具体为什么,欢迎各位大神留言解答

浙公网安备 33010602011771号