• Servlet第五课:Cookie的使用


    目标规划:

    通过这一节课,我们能够懂得怎样使用Cookie。以及怎样获取Cookie中的内容。

    插播广告:博客之星评选。点击投我一票。谢谢

    Cookie的具体概述。

    1. Cookie 是保存在client的一个“键-值”对,用来标识用户的一些信息。

    2. Cookie的应用
    –在电子商务会话中标识用户
    –对网站进行定制
    –定向广告
    3. 调用Cookie的构造函数,给出cookie的名称和cookie的值,二者都是字符串
    Cookie c = new Cookie("userID", "a1234");
    4. 假设要告诉浏览器将cookie存储到磁盘上。而非只保存在内存中,使用setMaxAge (參数为秒数)
    c.setMaxAge(60*60*24*7); // One week
    5. 将Cookie放入到HTTP响应
    response.addCookie(c);


    6. 调用request.getCookies 获得这会得到Cookie对象组成的数组,在这个数组中循环。调用每一个对象的getName。直到找到想要的cookie为止。

    7.实例,创建cookie

    我们首先创建一个Cookie信息:

    核心代码:

    Cookie c = new Cookie("goxuexi", "www.goxuexi.com");
    		c.setMaxAge(60*60*24*7);
    		response.addCookie(c);

    所有代码:TestCookieServlet.java

    package com.goxuexi.demo;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class TestCookieServlet
     */
    @WebServlet("/TestCookieServlet")
    public class TestCookieServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TestCookieServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		Cookie c = new Cookie("goxuexi", "www.goxuexi.com");
    		c.setMaxAge(60*60*24*7);
    		response.addCookie(c);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

    02.写一个获取Cookie的代码:


    TestCookie.java

    核心代码:

    Cookie[] cs =  request.getCookies();
    		for (Cookie c : cs) {
    			System.out.println(c.getName()+":"+c.getValue());
    		}

    所有代码:

    package com.goxuexi.demo;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class TestCookie
     */
    @WebServlet("/TestCookie")
    public class TestCookie extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TestCookie() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		Cookie[] cs =  request.getCookies();
                   if(cs != null)
                    for (Cookie c : cs) {
    			System.out.println(c.getName()+":"+c.getValue());
    		}
                     }
                       }
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

    8.实例-使用cookie检測初訪者

    //使用cookie检測初訪者   
    	String result=null;    
            boolean newUser = true;    
            Cookie[] cookies = request.getCookies();    
            if(cookies!=null){    
                    for(int i=0;i<cookies.length;i++){    
                            Cookie c = cookies[i];    
                            if((c.getName().equals("repeatVisitor"))&&(c.getValue().equals("yes"))){    
                            	newUser = false;    
                                break;    
                            }    
                    }    
            } 
            
    	if (newUser) {
    		Cookie returnVisitorCookie = new Cookie("repeatVisitor", "yes");
    		returnVisitorCookie.setMaxAge(60 * 60 * 24 * 365);
    		response.addCookie(returnVisitorCookie);
    		result = "Welcome Aboard";
    	} else {
    		result = "Welcome Back";
    	}
    	System.out.println(result);



  • 相关阅读:
    Windows 7 X64平台编译LLVM+clang
    web前后端分离漏洞分析防御
    微信小程序中显示html富文本的方法
    微信小程序上拉加载下拉刷新
    微信小程序横向滚动
    微信小程序中的自定义组件 以及 相关的坑
    一款易用、高可定制的vue翻页组件 vo-pages
    vue调用高德地图:vue-amap
    Vue 前端md5加密
    js手机号码中间用星号代替。银行卡后四位之外改为星号
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5106536.html
Copyright © 2020-2023  润新知