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选择排序法以及实例详解

    Java选择排序法以及实例详解

    在本篇文章里小编给大家整理了一篇关于Java选择排序法以及实例内容,并做了详细分析,有兴趣的朋友们可以跟着学习下。
    2022-11-11
  • 基于java集合中的一些易混淆的知识点(详解)

    基于java集合中的一些易混淆的知识点(详解)

    下面小编就为大家带来一篇基于java集合中的一些易混淆的知识点(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 详解spring项目中如何动态刷新bean

    详解spring项目中如何动态刷新bean

    这篇文章主要为大家介绍了详解spring项目中如何动态刷新bean,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 详解spring注解配置启动过程

    详解spring注解配置启动过程

    这篇文章主要为大家详细介绍了详解spring注解配置启动过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 重新实现hashCode()方法

    重新实现hashCode()方法

    hashCode()是Java中的一个重要方法,用于计算对象的哈希码。本文介绍了如何重新实现hashCode()方法,包括使用对象的属性计算哈希码、使用字符串拼接计算哈希码、使用随机数计算哈希码等方法。同时,还介绍了如何避免哈希冲突,提高哈希表的效率。
    2023-04-04
  • Springboot项目如何兼容老的Spring项目问题

    Springboot项目如何兼容老的Spring项目问题

    这篇文章主要介绍了Springboot项目如何兼容老的Spring项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • springboot webflux 过滤器(使用RouterFunction实现)

    springboot webflux 过滤器(使用RouterFunction实现)

    这篇文章主要介绍了springboot webflux 过滤器(使用RouterFunction实现),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java Kryo,Protostuff,Hessian序列化方式对比

    Java Kryo,Protostuff,Hessian序列化方式对比

    这篇文章主要介绍了Java Kryo,Protostuff,Hessian序列化方式对比,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • java实现员工工资管理系统

    java实现员工工资管理系统

    这篇文章主要为大家详细介绍了java实现员工工资管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 从java源码分析线程池(池化技术)的实现原理

    从java源码分析线程池(池化技术)的实现原理

    这篇文章主要介绍了从java源码分析线程池(池化技术)的实现原理,池化技术是一种编程技巧,当程序出现高并发时,能够明显的优化程序,降低系统频繁创建销毁连接等额外开销,下文更多的相关介绍需要的小伙伴可以参考一下
    2022-04-04

最新评论