报错如下:
原因:tomcat版本较高,cookie中不允许空格的存在
String currentTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
将上一行写成如下形式,报错就能解决
String currentTime = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss").format(new Date());
完整代码如下:
package cn.itcast.firstmyapp.servlet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import javax.servlet.ServletException;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LastAccessServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应的编码方式
resp.setContentType("text/html;charset=utf-8");
String lastAccessTime = null;
//获取所有cookie,将cookie放在数组中
cookie[] cookies = req.getcookies();
//遍历寻找是否有叫“lastAccess”的cookie
for(int i = 0; cookies != null && i < cookies.length; i++) {
if("lastAccess".equals(cookies[i].getName())) {
lastAccessTime = cookies[i].getValue();
break;
}
}
if (lastAccessTime == null) {
resp.getWriter().print("您是首次访问本站");
}else {
resp.getWriter().print("您上次的访问时间是"+lastAccessTime);
}
//获取当前时间
//获取时间为年月日的形式
String currentTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
//由于tomcat版本较高,cookie的name和value中都不允许有空格的存在,所以将上一行写成如下形式,报错就能解决
//String currentTime = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss").format(new Date());
//创建cookie对象
cookie cookie = new cookie("lastAccess", currentTime);
//获取时间为秒,创建cookie对象
//cookie cookie = new cookie("lastAccess",System.currentTimeMillis()+"");
//cookie.setMaxAge(60*60); //设置cookie的有效时间
//返回给客户端cookie
resp.addcookie(cookie);
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
}


![[JavaWeb]Cookie显示用户上次访问时间报错(Cookie值中存在无效字符) [JavaWeb]Cookie显示用户上次访问时间报错(Cookie值中存在无效字符)](http://www.mshxw.com/aiimages/31/281163.png)
