servlet Cookie 的使用

Posted 柳暗花明睡一觉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet Cookie 的使用相关的知识,希望对你有一定的参考价值。

1.cookie介绍

  Cookie,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。(可以叫做浏览器缓存)

2.cookie案例

  servlet 源码

package com.learn;

import javax.servlet.ServletException;
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;

/**
 * 
 */
public class CookieServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //cookie引用
        Cookie cookie = null;
        //设置返回类型为文本类型
        resp.setContentType("text/plain");
        //获取输出对象
        PrintWriter out = resp.getWriter();

        //从请求参数中获取cookies
        Cookie[]  cookies = req.getCookies();
        if(cookies != null){
            for (int i = 0; i < cookies.length ; i++) {
                out.println("name:"+cookies[i].getName());
                out.println("value:"+cookies[i].getValue());
                //如果cookie值为user,则赋值给cookie
                if(cookies[i].getName().equals("user")){
                    cookie = cookies[i];
                }
            }

        } else {
            out.print("no cookie");
        }

        if(cookie == null){
            cookie = new Cookie("user","tom");
            //设置cookie最大值为60分钟
            cookie.setMaxAge(60*60);
            resp.addCookie(cookie);
        } else if(cookie.getValue().equals("tom")){
            cookie.setValue("jack");
            resp.addCookie(cookie);
        } else if(cookie.getValue().equals("jack")){
            cookie.setMaxAge(0);
            resp.addCookie(cookie);
        }

       out.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

web,xml 配置

  <servlet>
        <servlet-name>cookie</servlet-name>
        <servlet-class>com.learn.CookieServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>cookie</servlet-name>
        <url-pattern>/cookie</url-pattern>
    </servlet-mapping>

返回结果:

继续访问一次,返回结果

 

以上是关于servlet Cookie 的使用的主要内容,如果未能解决你的问题,请参考以下文章

js代码片段: utils/lcoalStorage/cookie

cookie的使用

Servlet中保存的cookie值读取不到

使用cookie servlets jsp的注销表单[重复]

Servlet请求和响应和Cookie

Servlet之Cookie操作