课后作业——cookie的基础练习

今天来和大家分享的时候有关cookie的一个基础练习,我们老师给留的一个课后练习:

题目:

        用户第一次访问的时候,显示“欢迎,这是您第一次访问”后续用户继续访问的时候显示“欢迎回来,您上次访问的时间为xxx年xx月xx日 hh:mm:ss”

        老师后续也给了一些提示:

                提示1:你要使用cookie来保存该访问时间
                提示2:创建servlet,在里面进行逻辑判断,判断是否有你创建的“lastVisit”名字的 cookie
                提示3:每次访问的时候都要存储一个cookie   这个cookie的名字要保持一致     

解答:

        接下来给大家讲一下我的思路:

                第一步:

                                首先设置一个页面进行跳转,并且简单的设置账号,密码以及form表单的提交

                第二步:

                                设置一个Servlet,并且在其中设置静态的账户和密码,完成一个简单的登录功能。

                第三步:

                                 登录成功后进行业务的实现,当用户第一次登录的时候,显示 :欢迎,这是您第一次访问,并且创建一个cookie,传输给浏览器。当用户后续登录的时候则通过cookie是否存在来判断用户是否重复访问。

实现:       

        第一步 :

课后作业——cookie的基础练习_第1张图片

 

         第二步+第三步:

课后作业——cookie的基础练习_第2张图片写这两步的时候,我犯了一些错误:

        1.    可以看见我最开始单一的使用了if else,进行了简单粗暴的判断,导致重复输出:欢迎,这是您第一次访问,这是因为我对cookie中的name进行了简单的判断,只要cookie中name值不是lastVisit的就输出内容,所以后续我是用一个布尔对象——t,并设置true来保证“欢迎,这是您第一次访问”只输出一次,并且输出一次之后将t设为false。

        2.如果用户重复访问的时候,我输出的“欢迎回来,您上次访问的时间为xxx年xx月xx日 hh:mm:ss”,会追加在“欢迎,这是您第一次访问”的后面,这并不是我想要的结果,所以我上网查了一下,使用了response.resetBuffer();来清除文本缓存,根据网上的说明,我使用了过后的确是清除了第一次的输出内容。

        总结:

        这次的码代码的时候,没有对代码的逻辑进行一个仔细的思考,导致后续不得不进行一些修补,对代码的理解仍然不够,考虑的不够仔细,一些小的细节没有想到,除了上述说的问题,其他地方倒也没有很大的问题,对之前的内容也还是有所印象比如时间的格式化等没有忘记。还有一点各个忘记说了的是,当向cookie传入值的时候,如果存在一些空格等字符的时候,需要对其进行编码后在进行添加,这样才能保证能存储到cookie中,同样输出的时候也需要对其进行解码。最后附上老师的代码:(思路可能和我差不多,但是老师的细节就是没有问题,也没有出现第二次输出的内容在第一次后面追加输出的情况)

课后作业——cookie的基础练习_第3张图片

 


 

你可能感兴趣的:(java,servlet,前端)