本文簡單利用Cookie技術來簡單的限制點贊次數,並不能杜絕遊客的惡意點贊。
好了,不嗦了,先來看看基礎知識:
ajax+springMVC+cookie
中間框架你隨意,樓主這裡用了springMVC,只要取得HttpServletRequest和HttpServletResponse你就可以操作cookie啦
什麼是Cookie
cookie 是存儲於訪問者的計算機中的變量。每當同一台計算機通過瀏覽器請求某個頁面時,就會發送這個cookie。你可以使用JavaScript 來創建和取回cookie 的值。
第2篇閱讀中提到了cookie存放在http的request中,這為我們在java中操作cookie提供了可能
cookie主要用途編輯
服務器可以利用Cookies包含信息的任意性來篩選並經常性維護這些信息,以判斷在HTTP傳輸中的狀態。 Cookies最典型的應用是判定註冊用戶是否已經登錄網站,用戶可能會得到提示,是否在下一次進入此網站時保留用戶信息以便簡化登錄手續,這些都是Cookies的功用。另一個重要應用場合是“購物車”之類處理。用戶可能會在一段時間內在同一家網站的不同頁面中選擇不同的商品,這些信息都會寫入Cookies,以便在最後付款時提取信息。
基本了解了Cookie,我們來看看java怎麼操作cookie
建立一個無生命週期的cookie,即隨著瀏覽器的關閉即消失的cookie,代碼如下:
HttpServletRequest request HttpServletResponse responseCookie cookie = new Cookie("cookiename","cookievalue");response.addCookie(cookie);建立一個有生命週期的cookie,可以設置他的生命週期
cookie = new Cookie("cookiename","cookievalue");//此方法接收一個以秒為單位的整數,該整數表示cookie的最大生存期。負值表示當關閉瀏覽器時,該cookie將被清除,表示必須立即清除該cookie。 cookie.setMaxAge();//設置路徑,這個路徑即該工程下都可以訪問該cookie 如果不設置路徑,那麼只有設置該cookie路徑及其子路徑可以訪問cookie.setPath("/");response.addCookie(cookie);讀取cookie,讀取cookie代碼如下
Cookie[] cookies = request.getCookies();//這樣便可以獲取一個cookie數組for(Cookie cookie : cookies){cookie.getName();// get the cookie namecookie.getValue(); // get the cookie value}springMVC具體限制操作
/*** 點贊操作** @param comment* @param request* @param response* @return*/@RequestMapping(value = TalkingConst.PATH_LOVE, method = RequestMethod.POST)public @ResponseBody Map<String, Object> love(Comment comment, HttpServletRequest request, HttpServletResponse response) {Map<String, Object> map = new HashMap<String, Object>();// 根據cookie的name取的cookie getCookieByName()方法可以參考代碼塊上的鏈接處的封裝Cookie cookie = getCookieByName(request, comment.getCommentId() + "");// 判斷cookie是否為空if (cookie != null) {// cookie不為空,提示已經贊過// 前台傳值map.put(TalkingConst.ATTRIBUTE_MSG, "您已贊過,請休息一下~");map.put(TalkingConst.ATTRIBUTE_NAME_RESULT, Boolean.FALSE);} else {// 數據庫操作,點贊個數加commentService.love(comment);// 創建cookie addCookie()方法可以參考代碼塊上的鏈接處的封裝addCookie(response, comment.getCommentId() + "", "", );map.put(TalkingConst.ATTRIBUTE_NAME_RESULT, Boolean.TRUE);}return map;}至此,簡單的cookie限制點贊次數基本完成。前台的代碼沒放因為每個點讚的樣式都不大一樣。
以上所述給大家分享了Java用Cookie限制點贊次數的相關知識,希望對大家有所幫助。