(8)cookie

注意点
服务器可以向客户端写内容
只能是文本内容
客户端可以阻止服务器写入
只能拿自己的webapp写入的东西
一个servlet/jsp设置的cookies能够被同一个路径下面或者自路径下面的servlet/jsp读到(路径-URL)
一、cookie应用场景:
比如淘宝中将一个商品加入购物车后,从购物车页面也可以看到该商品。若cookic关闭,则在购物车页面不会显示该商品。一些网站必须用cookic,否则不能正确使用该网站,若关闭,则会提示希望能够打开cookic功能。
比如:csdn网站登录可以两周内免登陆,就是将登录信息记录在cookic中。
二、cookie的创建
创建 cookie,通过servlet将极少量的信息发送到 Web 浏览器,稍后发送回服务器
①服务器到客户端:The servlet sends cookies to the browser by using the HttpServletResponse#addCookie method, which adds fields to HTTP response headers to send cookies to the browser, one at a time
②客户端到服务器:Cookies can be retrieved from a request by using the HttpServletRequest#getCookies method.

服务器到客户端:
public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        for(int i=0;i<3;i++)
        {
            //1.创建cookic:javax.servlet.http.Cookie;
            Cookie cookie=new Cookie("name"+i,"value:"+i);
            cookie.setMaxAge(3600);//设置此cookic存活时间

            //2.服务器向客户端发送数据
            response.addCookie(cookie); 
        }
        out.println("<a href='/day09/showcookie'>showcookie</a>");

    }
客户端到服务器
public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        //客户端向服务器发送请求,获取cookie
        Cookie[] cookies=request.getCookies();
        if(cookies!=null)
        {
            Cookie cookie;
            for(int i=0;i<cookies.length;i++)
            {
                cookie=cookies[i];
                out.println(cookie.getName()+"----"+cookie.getValue());//cookie是键值对
                out.println("<br/>");
            }
        }


    }
posted @ 2017-08-29 00:17  测试开发分享站  阅读(101)  评论(0编辑  收藏  举报