Cookie!!!
package com.nnxy.web;
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.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet(name = "cookieServlet", urlPatterns = "/cookie")
public class cookieServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/**
* 记住上一次的访问时间
* 需求:
* 1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问
* 2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间
* 分析:
* 1.可以采用Cookie来完成
* 2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie
* ——有:不是比一次访问
* ————欢迎回来,您上一次访问时间为:显示时间
* ————写回Cookie:lastTime=时间
* ——没有:是第一次访问
* ————响应数据:您好欢迎首次访问
* ————写回Cookie:lastTime=时间
*/
Date d = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
String date = simpleDateFormat.format(d);
Cookie[] cookies = req.getCookies();
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
Cookie cookie;
writer.println("<h1>");
//定义旗标
boolean flag = true;
//如果cookies里 lastTime 字段存在 证明网页被访问过 ,否则没有被访问过
for (Cookie c : cookies) {
if (c.getName().equalsIgnoreCase("lastTime")) {
flag = false;
break;
}
}
if (cookies.length == 0 || flag) {
cookie = new Cookie("lastTime", date);
resp.addCookie(cookie);
writer.println("你好!欢迎首次访问,当前时间是" + date);
} else {
writer.println("欢迎访问,您第上一次访问时间是:");
for (Cookie c : cookies) {
if (c.getName().equalsIgnoreCase("lastTime")) {
writer.print(c.getValue());
System.out.println(c.getName() + " : " + c.getValue());
}
}
}
writer.println("</h1>");
cookie = new Cookie("lastTime", date);
resp.addCookie(cookie);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
结果展示