记住上一次的访问时间——Cookie的使用场景

 

需求

  1. 访问一个Servlet,如果是第一次访问,则提示:第一次见面,请多指教 ! ! !
  2. 如果不是第一次访问,则提示:欢迎回来 >_< ! 上次见到你是在 + 上一次访问时间
    . 在这里插入图片描述

 

思路和细节

  1. 在访问Servlet时,对其request请求的Cookie进行判断——
    如果name为lastTime的Cookie,则响应"第一次见面",写回Cookie
    如果没有name为lastTime的Cookie,则响应"上一次见面是在…",写回Cookie
  2. request.getCookies()返回的是个Cookie数组而非集合,没有直接get到lastTime的方法,只能遍历,看其是否存在
  3. 不管有没有,都可以直接new一个Cookie返回,因为同名Cookie会发生覆盖
    (虽然写回(response)的Cookie的响应头中没有覆盖,但其实在下一次的发出的request的请求头中,会发现已经覆盖了)
  4. response.setContentType("text/html;charset=utf-8")解决服务器输出到浏览器的字符流(响应体)中文乱码问题
  5. 新版本的Cookie虽然已经支持中文,但仍有一些特殊字符(比如space空格)出现乱码——因此最好在生成Cookie时,用URL编码多转化一次(URLEncoder);读取Cookie时,用URL解码多转化一次(URLDecoder)—— 参数是字符串返回值也是字符串,用起来很方便(★)

 

代码

@WebServlet("/CookieServlet")
public class CookieServlet extends HttpServlet {
   
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
   

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值