首页 新闻 会员 周边 捐助

javaweb中输出时间显示格式问题

0
[已解决问题] 解决于 2019-10-29 11:21

本人在javaweb中实现了一个显示上次登录时间,但是输出的时间总是不能转换成我们常用的时间格式。
我的输出是:您上次访问的时间是:d8f16178-792b-43ca-bb5d-03b1f50f8c0b

代码为:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/CookieLasttime")
public class CookieLasttime extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//指定服务器输出内容的编码方式为utf-8,防止乱码
resp.setContentType("text/html;charset=utf-8");
String lastaccesstime=null;
//获取所有cookie,并将这些cookie存放在数组中
Cookie[] cookies=req.getCookies();
//遍历获取cookie数组
for (int i = 0;cookies!=null&& i < cookies.length;) {
lastaccesstime=cookies[i].getValue();
break;
}
//判断是否存在名为lastaccesstime的cookie值
if(lastaccesstime==null) {
resp.getWriter().println("您是首次访问本站!!");
}else {
resp.getWriter().println("您上次访问的时间是:"+lastaccesstime);
}

    resp.getWriter().println(lastaccesstime);
    System.out.println(lastaccesstime);
    //获取cookie信息并将当前时间作为cookie值发送给客户端
    String currenttime= new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss").format(new Date());

    Cookie cookie=new Cookie("lastaccess",currenttime);
    resp.addCookie(cookie);

}

@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req, resp);
}

}

晖晖晖晖的主页 晖晖晖晖 | 菜鸟二级 | 园豆:204
提问于:2019-10-15 10:35
< >
分享
最佳答案
1

遍历获取cookie数组处有问题,你并没有声明获取key为lastaccess的元素,可以改为:

//遍历获取cookie数组
for (Cookie cookie : cookies) {
    if ("lastaccess".equals(cookie.getName())) {
        lastaccesstime = cookie.getValue();
        break;
    }
}
奖励园豆:5
enjoyN | 菜鸟二级 |园豆:209 | 2019-10-28 09:54

非常感谢

晖晖晖晖 | 园豆:204 (菜鸟二级) | 2019-10-29 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册