本文簡單利用Cookie技術來簡單的限制點讚次數,並不能杜絕遊客的惡意點讚。
好了,不囉嗦了,先來看看基礎知識:
ajax+springMVC+cookie
中間框架你隨意,樓主這裡用了springMVC,只要取得HttpServletRequest和HttpServletResponse是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 response Cookie 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 name cookie.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; }
springMVC具體限制操作
rrreeeookiespringMVC具體限制操作
creee前台的程式碼沒放因為每個讚的樣式都不大一樣。
以上所述給大家分享了Java用Cookie限制點讚次數的相關知識,希望對大家有所幫助。