Java用Cookie限制点赞次数(简版)

 更新时间:2016年02月03日 11:44:22   投稿:mrr  
最近做了一个项目,其中有项目需求是,要用cookie实现限制点赞次数,特此整理,把实现代码分享给大家供大家学习

本文简单利用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 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;
}

至此,简单的cookie限制点赞次数基本完成。前台的代码没放因为每个点赞的样式都不大一样。

以上所述给大家分享了Java用Cookie限制点赞次数的相关知识,希望对大家有所帮助。

相关文章

  • Java中的Semaphore源码分析

    Java中的Semaphore源码分析

    这篇文章主要介绍了Java中的Semaphore源码分析,Semaphore是一个访问公共资源的线程数量如限流、停车等,它是一个基于AQS实现的共享锁,主要是通过控制state变量来实现,需要的朋友可以参考下
    2023-11-11
  • Java异常的处理机制

    Java异常的处理机制

    这篇文章主要介绍了Java异常的处理机制,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • java开发BeanUtils类解决实体对象间赋值

    java开发BeanUtils类解决实体对象间赋值

    这篇文章主要为大家介绍了java开发中使用BeanUtils类实现实体对象之间的赋值有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步学有所得
    2021-10-10
  • httpclient的disableConnectionState方法工作流程

    httpclient的disableConnectionState方法工作流程

    这篇文章主要为大家介绍了httpclient的disableConnectionState方法工作流程源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java根据正整数的位数并逆序打印出各位数字

    Java根据正整数的位数并逆序打印出各位数字

    给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字,需要的朋友可以参考下
    2017-02-02
  • Java线程池Executor用法详解

    Java线程池Executor用法详解

    本文主要为大家详细介绍了Java线程池Executor的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • SpringBoot3整合SpringCloud启动后nacos报错获取不到配置、无法注册服务的解决方案

    SpringBoot3整合SpringCloud启动后nacos报错获取不到配置、无法注册服务的解决方案

    文章介绍了如何使用Spring Boot 3.3.4和Spring Cloud 2023.0.3搭建微服务项目,并解决与Nacos服务注册发现和配置中心的集成问题,主要解决了依赖版本不兼容、配置文件导入问题及服务注册失败等问题,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Java8新特性之新日期时间库的使用教程

    Java8新特性之新日期时间库的使用教程

    这篇文章主要给大家介绍了关于Java8新特性之新日期时间库使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 如果淘宝的七天自动确认收货让你设计你用Java怎么实现

    如果淘宝的七天自动确认收货让你设计你用Java怎么实现

    在面试的时候如果面试官问淘宝的七天自动确认收货让你设计,你会怎么具体实现呢?跟着小编看一下下边的实现过程,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • 解决springboot与springcloud版本兼容问题(附版本兼容表)

    解决springboot与springcloud版本兼容问题(附版本兼容表)

    在基于spring boot搭建spring cloud时,创建eureka后启动服务发生报错,本文给大家介绍了解决springboot与springcloud版本兼容问题的几种方案,需要的朋友可以参考下
    2024-02-02

最新评论