解决刷新使得点击数多次变化问题

利用token构想,

首先在jsp页面定义token字符串,在客户端和服务器最开始的时候都是一样的,然后通过servlet处理判断它们相同的话
就更新,然后删除服务器端的token。 以后每次刷新进入servlet的时候 服务器的token不存在所以 不继续增加点击数了。

在外面页面定义


 1         <%
2 //最开始进入的时候服务器和客户端都是相同的tokens,在servlet处理之后 服务器的tokens被删除了
3 //所以接下来服务器和客户端 tokens匹配就不一样了,所以只刷新一次
4 String token=WebUtil.getRandomValue();
5 session.setAttribute("token", token);
6 %>
7
8 <a href ="${pageContext.request.contextPath}/BbsServlet?method=findAllTopicByTypeId&typ 9 eId=${type.id}&token=${token}" style="text-decoration:none">${type.name}</a>
<td>${type.click}</td> //点击数

在servlet端


 1             int typeId=Integer.parseInt(request.getParameter("typeId"));
2
3
4 //表单重复提交 多次刷新 问题
5 //客户端和服务器端口的token 在 listAll中 放了的
6 String tokenClient=request.getParameter("token");
7 String tokenServer=(String) request.getSession().getAttribute("token");
8 if(null!=tokenClient&&null!=tokenServer&&tokenClient.equals(tokenServer))
9 {
10 bbsService.updateClickByTypeId(typeId); //向数据库中点击数+1
11 request.getSession().removeAttribute("token");
12 }
13

解决刷新使得点击数多次变化问题

时间: 2024-12-27 23:57:19

解决刷新使得点击数多次变化问题的相关文章

分享 WebBrowser显示Html内容3点细节技巧,解决刷新后空白

直接显示Html内容,不像直接导航网址容易处理: 问题:按微软的控件属性提示,可以用WebBrowser.DocumentText 属性赋值 ,但是这种赋值,只是首次有效,后续切换都没啥作用. 下面给出自己追求摸索的两点技巧: 1:通过WebBrowser.Document.Write(html)方法来输出html内容显示. 由于WebBrowser 需要经历几个事件后才会显示,直接输出是不行的,为此,需要有点技巧的使用: wbShowBlog.Navigate("about:blank&quo

ListView解决刷新时Item中的图片出现闪动

问题描述: Listview的item中有图片,在刷新时及时新数据和旧数据并无两样,imageview还是会闪动. 先来分析图片闪动可能的原因: 1)adapter = new WillListAdapter(MyApplication.getInstance(), wills); 不管此前adapter是否已绑定数据,或数据前后有没有变化,这条语句执行的时候,adapter都会使listview重绘所有item,这个闪动不可避免 2)adapter.notifyDataSetChanged()

解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题

解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 当我们改变ListBox的ItemsSource时,会发现这样一个问题:数据源变化时,虽然控件中的内容会跟着变化,但滚动条却不会重置. 举个例子: 将ListBox绑定到一百个字符串:listbox.ItemsSource = Enumerable.Range(0, 100).Select(i => "## " + i);. 将ListBox的滚动条拖到最后,使之能看到最后的"#

vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)

在使用vue绑定数据的时候,渲染页面时会出现变量闪烁,例如 <div class="#app"> <p>{{value.name}}</p> </div> 在加载的时候会看到 {{value.name}} 在页面出现,过了几秒之后才会渲染数据,在vue中有个指令可以解决这个问题,v-cloak v-cloak要放在什么位置呢,是不是每个需要渲染数据的标签都要添加这个指令,经过我的试验发现,v-cloak并不需要添加到每个标签,只要在el挂

vue点击tab跳转页面,给点击的tab添加样式,且解决刷新以后点击的tab样式消失问题

<ul class="nij"> <li v-for="item in nav" @click="selectNav(item.title)"> <p :class="isSelect === item.title ? 'active' : ''">{{item.title}}</p> </li> </ul> data:function(){ return

解决刷新页面加载图片会闪屏的问题

我这里用的是一个比较取巧的方法(这里是jquery的写法): 在css里默认的样式把图片设为全透明: img{ opacity: 0} 页面图片加载完毕后在将透明度设为不透明,这样就能达到遮掩闪屏的效果: $("img").css({opacity: 1}); 原文地址:https://www.cnblogs.com/xxySsm/p/11712095.html

解决VM虚拟机重启后hostname变化问题#hostname永不改变

虚拟机启动后主机名设置问题,在centos7中设置hostname后怎么都是原来的hostname,根本无效.所以在centos7中除了修改hosts文件和network文件后,还需修改etc/hostname文件,具体步骤如下    第一步:修改/etc/sysconfig/network文件    #>vi /etc/sysconfig/network    添加或修改:    NETWORKING=yes    HOSTNAME=slave    第二步:修改/etc/hosts文件   

如何在Eclipse下,实现ant的web项目修改保存后,实时部署,直接刷新即可看到结果

最近碰到了一个老项目,是ant的web项目,把项目导入到Eclipse以后,发现修改了文件之后,要先执行build.xml,再把打包好的war丢到Tomcat下,再刷新才能看到效果.由于以前没用过ant,所以自己研究了一套办法(如果ant确实有像Eclipse下修改后直接刷新就可看到结果的方法,还望众客官不吝赐教). 本项目参考了以下4个帖子: 帖子1:  http://blog.csdn.net/futurelight/article/details/624950 帖子2: http://we

使用EF生成数据模型,然后在数据库直接修改数据,前台刷新以后数据没有改变

sl5+wcf ria +ef 初学者水平 在sqlserver手动修改了数据库的数据以后,再到前台去刷新数据,发现数据没有变化,服务端返回和前台不一致 服务端代码 public IQueryable<Customer> GetCustomerByCustomerId(string customerId) { return this.ObjectContext.Customer.Where(e => e.CustomId == customerId); } 客户端更新按钮代码 priva