JavaWeb案例:上次访问时间 Cookie技术

 1 package cn.itcast.access;
 2
 3 import javax.servlet.ServletException;
 4 import javax.servlet.annotation.WebServlet;
 5 import javax.servlet.http.Cookie;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 import java.text.SimpleDateFormat;
11 import java.util.Date;
12
13 @WebServlet("/lastTime")
14 public class LastTimeServlet extends HttpServlet {
15     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
16         /*
17         案例需求:
18         1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
19         2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
20
21         1.用户访问Servlet资源
22         2.从记忆中获取访问时间
23             Servlet中getCookies()
24             判断是否为null
25                 判断是否存在lastTime
26                     存在,则获取用户时间,并将当前时间存入,显示上次访问
27
28             用户是第1次访问,显式首次访问
29
30         如果没有,说明第1次访问,则提示:您好,欢迎您首次访问。
31         如果有,则提示:欢迎回来,您上次访问时间为:显示时间字符串
32          */
33
34         //编码
35
36         response.setContentType("text/html;charset=utf-8");
37         //从记忆中获取访问时间
38         Cookie[] cookies = request.getCookies();
39         if(cookies != null){
40             //判断是否存在lastTime
41             for (Cookie cookie : cookies)
42                 if (cookie.getName().equals("lastTime")) {
43                     String lastTimeMillisStr = cookie.getValue();
44                     //存入当前时间
45                     Cookie currentTime = new Cookie("lastTime", String.valueOf(System.currentTimeMillis()));
46                     //保存1天
47 //                    currentTime.setMaxAge(60 * 60 * 24);
48                     response.addCookie(currentTime);
49
50                     //用户已经访问,输出上次访问
51                     Date lastTimeDate = new Date();
52                     lastTimeDate.setTime(Long.parseLong(lastTimeMillisStr));
53
54                     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
55                     String lastTimeStr = sdf.format(lastTimeDate);
56                     response.getWriter().write("欢迎回来,您上次访问时间为:" + lastTimeStr);
57
58                     return;
59                 }
60         }
61
62         //首次访问
63         //存入当前时间
64         Cookie currentTime = new Cookie("lastTime", String.valueOf(System.currentTimeMillis()));
65         //保存1天
66 //        currentTime.setMaxAge(60 * 60 * 24);
67         response.addCookie(currentTime);
68
69         response.getWriter().write("您好,欢迎您首次访问。");
70     }
71
72     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
73         doPost(request, response);
74     }
75 }

版本1 直接就写

 1 package cn.itcast.access;
 2
 3 import javax.servlet.ServletException;
 4 import javax.servlet.annotation.WebServlet;
 5 import javax.servlet.http.Cookie;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 import java.text.SimpleDateFormat;
11 import java.util.Date;
12
13 @WebServlet("/lastTime2")
14 public class LastTimeServlet2 extends HttpServlet {
15     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
16         /*
17         案例需求:
18         1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
19         2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
20
21
22         1.用户访问Servlet资源
23         2.从记忆中获取访问时间
24             Servlet中getCookies()
25             判断是否为null
26                 判断是否存在lastTime
27                     存在,则获取用户时间,并将当前时间存入,显示上次访问
28
29             用户是第1次访问,显式首次访问
30
31         如果没有,说明第1次访问,则提示:您好,欢迎您首次访问。
32         如果有,则提示:欢迎回来,您上次访问时间为:显示时间字符串
33          */
34
35         //编码
36         response.setContentType("text/html;charset=utf-8");
37
38         //1.存入访问时间(毫秒值形式)
39         Cookie currentTime = new Cookie("lastTime", String.valueOf(System.currentTimeMillis()));
40 //        currentTime.setMaxAge(60 * 60 * 24);
41         response.addCookie(currentTime);
42
43         //2.从记忆中获取上次访问时间
44         Cookie lastTimeCookie = null;
45         Cookie[] cookies = request.getCookies();
46         if(cookies != null){
47             //判断是否存在lastTime
48             for (Cookie cookie : cookies)
49                 if (cookie.getName().equals("lastTime")) {
50                     lastTimeCookie = cookie;
51                     break;
52                 }
53         }
54
55         //3.判断lastTimeCookie是否存在
56         if(lastTimeCookie != null){
57             //是,上次访问
58             Date lastTimeDate = new Date();
59             lastTimeDate.setTime(Long.parseLong(lastTimeCookie.getValue()));
60
61             SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
62             String lastTimeStr = sdf.format(lastTimeDate);
63             response.getWriter().write("欢迎回来,您上次访问时间为:" + lastTimeStr);
64         }else{
65             //否,首次访问
66             response.getWriter().write("您好,欢迎您首次访问。");
67         }
68
69     }
70
71     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
72         doPost(request, response);
73     }
74 }

版本2 使用毫秒值

 1 package cn.itcast.access;
 2
 3 import javax.servlet.ServletException;
 4 import javax.servlet.annotation.WebServlet;
 5 import javax.servlet.http.Cookie;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 import java.net.URLDecoder;
11 import java.net.URLEncoder;
12 import java.text.SimpleDateFormat;
13 import java.util.Date;
14
15 @WebServlet("/lastTime3")
16 public class LastTimeServlet3 extends HttpServlet {
17     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18         /*
19         案例需求:
20         1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
21         2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
22
23
24         1.用户访问Servlet资源
25         2.从记忆中获取访问时间
26             Servlet中getCookies()
27             判断是否为null
28                 判断是否存在lastTime
29                     存在,则获取用户时间,并将当前时间存入,显示上次访问
30
31             用户是第1次访问,显式首次访问
32
33         如果没有,说明第1次访问,则提示:您好,欢迎您首次访问。
34         如果有,则提示:欢迎回来,您上次访问时间为:显示时间字符串
35          */
36
37         //编码
38         response.setContentType("text/html;charset=utf-8");
39
40         //1.存入访问时间(日期字符串形式)
41
42         //获取当前日期字符串
43         Date currentDate = new Date();
44         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
45
46         //将当前日期字符串,存入cookie
47         Cookie currentTime = new Cookie("lastTime", URLEncoder.encode(sdf.format(currentDate), "UTF-8"));
48 //        currentTime.setMaxAge(60 * 60 * 24);
49         response.addCookie(currentTime);
50
51         //2.从记忆中获取上次访问时间
52         Cookie lastTimeCookie = null;
53         Cookie[] cookies = request.getCookies();
54         if(cookies != null){
55             //判断是否存在lastTime
56             for (Cookie cookie : cookies)
57                 if (cookie.getName().equals("lastTime")) {
58                     lastTimeCookie = cookie;
59                     break;
60                 }
61         }
62
63         //3.判断lastTimeCookie是否存在
64         if(lastTimeCookie != null){
65             //是,上次访问
66             response.getWriter().write("欢迎回来,您上次访问时间为:" + URLDecoder.decode(lastTimeCookie.getValue(),"UTF-8"));
67         }else{
68             //否,首次访问
69             response.getWriter().write("您好,欢迎您首次访问。");
70         }
71
72     }
73
74     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
75         doPost(request, response);
76     }
77 }

版本3 使用日期字符串

030_会话技术

1)什么是会话?
名词解释:会话描述的是通信双方之间一次交流过程。
特点:某个时刻对之前的会话内容都有记忆,可以基于这些记忆进行交流。

2)什么是web会话?
web会话:浏览器和服务器之间的交互过程,包含多次请求和响应。

3)会话技术:Cookie和Session
为会话存储数据的技术。Cookie把数据存储在客户端,Sessionba把数据存储在服务器。

核心:
即对数据跨请求的记忆和基于这些记忆的操作。
对数据跨请求存储和基于数据的操作。

原文地址:https://www.cnblogs.com/mozq/p/10833057.html

时间: 2024-10-11 13:11:46

JavaWeb案例:上次访问时间 Cookie技术的相关文章

【会话技术】Cookie技术 案例:访问时间

创建时间:6.30 代码: 1 package cookie; 2 3 import java.io.IOException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 i

Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)

1 . 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 1.1 会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据. 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐. 思考:用户购买的商品保存在r

通过servlet使用Cookie获取用户上次访问时间

解决tomcat使用Cookie中文乱码问题,javaWeb新手 1 public class CookieTest extends HttpServlet { 2 3 4 public void doGet(HttpServletRequest request, HttpServletResponse response) 5 throws ServletException, IOException { 6 7 String currentDate = mCurrentDate(); 8 Str

Servlet案例6:显示用户的上次访问时间

这里是cookie的简单应用 告诉用户您的上次访问时间是:xxxx-xx-xx xx:xx:xx 思路: 第一次访问该网站时候,记录当前访问时间(new Date()) 把当前时间以cookie的形式写给客户端(response.addCookie) 第二次访问时候,获取客户端携带的相应的cookie,并且显示给用户 覆盖上次访问时间 代码实现: package cookie; import java.io.IOException; import java.text.SimpleDateForm

javaWeb 使用cookie显示上次访问网站时间

package de.bvb.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.enterprise.inject.ResolutionException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.ht

【JAVAWEB学习笔记】16_session&cookie

会话技术Cookie&Session 学习目标 案例一.记录用户的上次访问时间---cookie 案例二.实现验证码的校验----session 一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪     里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并   不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器    记住客户端状态(区分客户端) 2.会话技术 从打开一个浏览器访问某

cookies 显示用户上次访问的时间 学习笔记

Cookie.setMaxAge(72460*60) Cookie.setPath("/day0X"); Httpwatch观察 Cookie.setMaxAge(0)删除同名Cookie import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.

超全面的JavaWeb笔记day11<JSP&Session&Cookie&HttpSession>

1.JSP 2.回话跟踪技术 3.Cookie 4.HttpSession JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的组成 JSP = html + Java脚本(代码片段) + JSP动态标签 2 JSP语法 2.1 JSP脚本 JSP脚本就是Java代码片段,它分为三种: l <%...%>:Java语句: l <%=-%>

Cookie技术

u  常用的API 创建Cookie对象 Cookie(String name, String value)    ->以指定数据创建Cookie对象 设置Cookie对象 void setMaxAge(int expiry)                ->设置Cookie的最大有效时间 void setPath(String uri)                             ->设置Cookie的有效路径 void setDomain(String pattern)