java 中cookie的詳解及復雜實例。本站提示廣大學習愛好者:(java 中cookie的詳解及復雜實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java 中cookie的詳解及復雜實例正文
java 中cookie的詳解
Java對cookie的操作比擬復雜,次要引見下樹立cookie和讀取cookie,以及如何設定cookie的生命周期和cookie的途徑問題。
樹立一個無生命周期的cookie,即隨著閱讀器的封閉即消逝的cookie,代碼如下
HttpServletRequest request HttpServletResponse response Cookie cookie = new Cookie("cookiename","cookievalue"); response.addCookie(cookie);
上面樹立一個有生命周期的cookie,可以設置他的生命周期
cookie = new Cookie("cookiename","cookievalue"); cookie.setMaxAge(3600); //設置途徑,這個途徑即該工程下都可以訪問該cookie 假如不設置途徑,那麼只要設置該cookie途徑及其子途徑可以訪問 cookie.setPath("/"); response.addCookie(cookie);
上面引見如何讀取cookie,讀取cookie代碼如下
Cookie[] cookies = request.getCookies();//這樣便可以獲取一個cookie數組 for(Cookie cookie : cookies){ cookie.getName();// get the cookie name cookie.getValue(); // get the cookie value }
下面就是根本的讀寫cookie的操作。我們在實踐中最好停止一下封裝,比方添加一個cookie,我們關注的是cookie的name,value,生命周期,所以停止封裝一個函數,當然還要傳入一個response對象,addCookie()代碼如下
/** * 設置cookie * @param response * @param name cookie名字 * @param value cookie值 * @param maxAge cookie生命周期 以秒為單位 */ public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){ Cookie cookie = new Cookie(name,value); cookie.setPath("/"); if(maxAge>0) cookie.setMaxAge(maxAge); response.addCookie(cookie); }
讀取cookie的時分,為了方便我們的操作,我們希望封裝一個函數,只需我們提供cookie的name,我們便可以獲取cookie的value,帶著這個想法,很容易想到將cookie封裝到Map外面,於是停止上面的封裝
/** * 依據名字獲取cookie * @param request * @param name cookie名字 * @return */ public static Cookie getCookieByName(HttpServletRequest request,String name){ Map<String,Cookie> cookieMap = ReadCookieMap(request); if(cookieMap.containsKey(name)){ Cookie cookie = (Cookie)cookieMap.get(name); return cookie; }else{ return null; } } /** * 將cookie封裝到Map外面 * @param request * @return */ private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ Map<String,Cookie> cookieMap = new HashMap<String,Cookie>(); Cookie[] cookies = request.getCookies(); if(null!=cookies){ for(Cookie cookie : cookies){ cookieMap.put(cookie.getName(), cookie); } } return cookieMap; }
感激閱讀,希望能協助到大家,謝謝大家對本站的支持!