java 設置Cookie值


原文地址:http://blog.csdn.net/lansetiankong12/article/details/52622654

/**  

         * 讀取所有cookie  

         * 注意二、從客戶端讀取Cookie時,包括maxAge在內的其他屬性都是不可讀的,也不會被提交。瀏覽器提交Cookie時只會提交name與value屬性。maxAge屬性只被瀏覽器用來判斷Cookie是否過期  

         * @param request  

         * @param response  

         */  

        

     @RequestMapping("/showCookies")  

        publicvoid showCookies(HttpServletRequest request,HttpServletResponse response ){  

            Cookie[] cookies = request.getCookies();//這樣便可以獲取一個cookie數組  

            if(null==cookies) {  

                System.out.println("沒有cookie=========");  

            }else{  

                for(Cookie cookie : cookies){  

                    System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());  

                }  

            }  

        }  

 

        /**  

         * 添加cookie  

         * @param response  

         * @param name  

         * @param value  

         */  

       

     @RequestMapping("/addCookie")  

        publicvoid addCookie(HttpServletResponse response,String name,String value){  

            Cookie cookie = newCookie(name.trim(), value.trim());  

            cookie.setMaxAge(30* 60);// 設置為30min  

            cookie.setPath("/");  

            System.out.println("已添加===============");  

            response.addCookie(cookie);  

        }  

 

        /**  

         * 修改cookie  

         * @param request  

         * @param response  

         * @param name  

         * @param value  

         * 注意一、修改、刪除Cookie時,新建的Cookie除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie不予覆蓋,導致修改、刪除失敗。  

         */  

      

  @RequestMapping("/editCookie")  

        publicvoid editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){  

            Cookie[] cookies = request.getCookies();  

            if(null==cookies) {  

                System.out.println("沒有cookie==============");  

            }else{  

                for(Cookie cookie : cookies){  

                    if(cookie.getName().equals(name)){  

                        System.out.println("原值為:"+cookie.getValue());  

                        cookie.setValue(value);  

                        cookie.setPath("/");  

                        cookie.setMaxAge(30* 60);// 設置為30min  

                        System.out.println("被修改的cookie名字為:"+cookie.getName()+",新值為:"+cookie.getValue());  

                        response.addCookie(cookie);  

                        break;  

                    }  

                }  

            }  

        }  

 

        /**  

         * 刪除cookie  

         * @param request  

         * @param response  

         * @param name  

         */  

       

 @RequestMapping("/delCookie")  

        publicvoid delCookie(HttpServletRequest request,HttpServletResponse response,String name){  

            Cookie[] cookies = request.getCookies();  

            if(null==cookies) {  

                System.out.println("沒有cookie==============");  

            }else{  

                for(Cookie cookie : cookies){  

                    if(cookie.getName().equals(name)){  

                        cookie.setValue(null);  

                        cookie.setMaxAge(0);// 立即銷毀cookie  

                        cookie.setPath("/");  

                        System.out.println("被刪除的cookie名字為:"+cookie.getName());  

                        response.addCookie(cookie);  

                        break;  

                    }  

                }  

            }  

        }  

 

/**  

     * 根據名字獲取cookie  

     * @param request  

     * @param name cookie名字  

     * @return  

     */  

  

  public Cookie getCookieByName(HttpServletRequest request,String name){  

        Map<String,Cookie> cookieMap = ReadCookieMap(request);  

        if(cookieMap.containsKey(name)){  

            Cookie cookie = (Cookie)cookieMap.get(name);  

            returncookie;  

        }else{  

            returnnull;  

        }    

    }  

 

通常開發時先用以下的代碼將獲取的cookie進行封裝  

    /**  

     * 將cookie封裝到Map里面  

     * @param request  

     * @return  

     */  

   

 private Map<String,Cookie> ReadCookieMap(HttpServletRequest request){    

        Map<String,Cookie> cookieMap = newHashMap<String,Cookie>();  

        Cookie[] cookies = request.getCookies();  

        if(null!=cookies){  

            for(Cookie cookie : cookies){  

                cookieMap.put(cookie.getName(), cookie);  

            }  

        }  

        returncookieMap;  

    }  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM