需求:html
1:用户访问服务器(Servlet),判断用户是不是第一次访问,若是是第一次访问,则在页面响应内容为:“您好,欢迎您首次访问”;
2:用户访问服务器(Servlet),判断用户是不是第一次访问,若是不是第一次访问,则在页面响应内容为:“欢迎回来,您上次访问的时间为:xxxx年xx月xx日 , xx时xx分xx秒”;java
需求分析: 数组
该需求能够使用Cookie来完成,服务器(Servlet)先获取请求体头中的Cookie信息,若是该信息中不存在咱们须要的信息,则该用户为首次访问.咱们须要将当前时间存入Cookie,而后将Cookie信息回写到客户端(浏览器端),进行存储;若是该信息中存在咱们须要的信息,则该用户不是首次访问.咱们须要将当前时间存入Cookie,而后将Cookie信息回写到客户端(浏览器端),进行存储,而且在页面响应"欢迎回来,您上次访问的时间为:xxxx年xx月xx日 , xx时xx分xx秒"内容;浏览器
2. 没有指定Cookie:表明是首次访问服务器
代码实现:cookie
package servlet; 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.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet("/demo01") public class Demo01 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置响应体格式参数 response.setContentType("text/html;charset=utf-8"); //获取全部的Cookie Cookie[] cookies = request.getCookies(); //定义一个标记 用来表示是否存在指定name的Cookie,存在指定cookie,flag为false;不存在为true boolean flag = true; //若是有Cookie if (cookies != null && cookies.length != 0){ //遍历cookie数组 for (Cookie cookie : cookies) { //判断cookie数组中是否存在指定name的Cookie if ("LastTime".equals(cookie.getName())){//若是有指定name的cookie,说明用户非首次访问 //更改标记flag的状态值 flag = false; //获取指定name cookie对应的值 String value = cookie.getValue(); //对获取到的值进行解码 String timeDecode = URLDecoder.decode(value, "utf-8"); //响应页面 response.getWriter().write("<h1>欢迎回来,您上次访问的时间是:" + timeDecode + "</h1>"); //获取当前时间 Date date = new Date(); //获取格式化日期对象 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 , HH时mm分ss秒"); //格式化当前时间 String time = simpleDateFormat.format(date); //对时间字符串进行编码 String timeNow = URLEncoder.encode(time, "utf-8"); //设置Cookie存活时间 cookie.setMaxAge(45); //更改cookie的值 cookie.setValue(timeNow); //回写Cookie response.addCookie(cookie); //结束循环 break; } } } //没有Cookie或者Cookie中没有指定name的Cookie,说明用户时首次访问 if (cookies == null || cookies.length == 0 || flag){ //获取当前时间 Date date = new Date(); //获取格式化日期对象 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 , HH时mm分ss秒"); //格式化当前时间 String time = simpleDateFormat.format(date); //对时间字符串进行编码 String timeEncode = URLEncoder.encode(time, "utf-8"); //将编码后的时间字符串存入Cookie Cookie cookie = new Cookie("LastTime", timeEncode); //设置Cookie存活时间 cookie.setMaxAge(45); //回写Cookie response.addCookie(cookie); //响应页面 response.getWriter().write("<h1>您好,欢迎您首次访问</h1>"); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
实现效果:this