packagecom.yzpnb.servlet;importjavax.servlet.*;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjava.text.SimpleDateFormat;importjava.util.Date;/**
* Request快速入门
*/@WebServlet("/dome1")publicclassDome1extendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{System.out.println("我是dome1Get");this.doPost(req,resp);}@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{
resp.setContentType("text/html;charset=UTF-8");//设置响应格式//设置响应体cookie,是当前时间String format =newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(newDate());//编码,因为我们数据中有空格等特殊符号,而cookie不能存储此类数据,所以需要编码,否则报500异常
format =URLEncoder.encode(format,"utf-8");Cookie info =newCookie("info", format);
info.setMaxAge(60*60*24*30);//cookie保存一个月boolean flag =true;//用来判断是否首次登陆Cookie[] cookies = req.getCookies();//获取请求体cookieif(cookies!=null&& cookies.length >0){for(Cookie cookie:cookies){if("info".equals(cookie.getName())){//如果具有名为info的cookie,代表非首次访问String value = cookie.getValue();//获取cookie值//因为cookie中是编码后数据,需要解码使用
value =URLDecoder.decode(value,"utf-8");
resp.getWriter().write("欢迎回来,您上次访问时间是"+value);//响应数据
flag =false;//代表不是首次访问}}}if(flag){//首次访问
resp.getWriter().write("您好,欢迎首次访问:首次访问时间"+URLDecoder.decode(format,"utf-8"));}
resp.addCookie(info);//更新cookie信息}}