- 浏览: 941907 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
今天对j2ee web开发中怎样防止对表单的重复提交作一下总结:
第一:可以在客户端利用Javascript对表单重复提交作验证,主要实现手段是在这个表单触发表单提交事件的时候调用一个Javascript编写的函数,这个函数:
<script>
var isCommitted = false;
function checkPost()
{
if(!isCommitted)
{
isCommitted = true;
return true;
}
else
{
alert("不能重复提交表单");
return false;
}
}
</script>
<form action="servlet/RepeateFormServlet" method="POST" onsubmit="return checkPost()">...
第二种:利用验证码
由于每次表单的提交都需要一个验证码这个验证码在服务器端是唯一的每次表单提交的验证码是不同的可以根据每次提交上来的验证码与服务器端的中的session中的验证码进行匹配
第三种:利用一个时间令牌(可以使任意的令牌只要是唯一的就可以)
产生这个唯一令牌
如:<%
Date nowDate = new Date();
String nowDateString = new Long(nowDate.getTime()).toString();
session.setAttribute("tokenTime",nowDateString);
%>
通过一个表单隐藏的字段传递这个令牌
<input type="hidden" name="tokenTime" value="<%=nowDateString%>">
接下来在服务器端中的session中获取这个时间令牌然后与这个表单的隐藏字段进行比较
相同则提交表单并且把这个session中的tokenTime删除
session.setAttribute("tokenTime",nowDateString);
反之....
第四种:基于Struct框架的解决方案
在Struct框架中提供一个Token机制来解决表单的重复提交
使用这个Token应注意:
这个JSP必须是通过一个Action进行转发并且在这个Action中调用saveToke(request);
这个方法向导向的JSP中保持一个唯一的Token
然后在一个处理表单的Action中调用isTokenVaild(request,true)方法来验证这个表单是否被重复提交
实现原理:当调用saveToken(request)时候服务器向JSP中输出一个唯一的Token服务器端也保存相同的一份当提交这个表单的时候调用isTokenValid(request,ture)进行校验后服务器又会生出一个新的Token发送给表单JSP中服务器端的Token不发送改变,当客户端再次提交这个表单的时候调用isTokenValid(request,ture)方法进行校验此时这个Token不一致则不会重复提交表单啦......
多指教......
发表评论
-
CDN加速WordPress触发CORS导致跨域加载失败
2018-04-09 17:36 1577这两天折腾CDN加速来提升自己博客的访问速度,用的阿里云C ... -
PV模型
2017-02-05 18:05 726你想建设一个能承受500万PV/每天的网站吗? 500万PV ... -
App开发一些总结
2016-04-05 17:48 2604架构因人而异,不同的架构师大多会有不同的看法;架构也因项目 ... -
解决fastjson内存对象相互应用导入json字符串出现错误问题
2016-04-05 17:48 1548日常在使用FastJson的时候可能很少会 ... -
分布式配置统一管理平台-Windows
2016-02-02 14:10 2726这里主要使用到disconf分布式配置管理平台 支持wind ... -
Codis使用入门
2016-01-15 16:35 1735首先严重吐槽 在使用Coids遇到无数坑 坑 坑 ... ... -
高可用消息队列框架ZBUS
2016-01-13 10:47 6002我们在日常开发中可以需要用到消息队列 当然我们完全可以自己 ... -
实现消息推送核心搭建(升级版)
2016-01-08 15:43 1729前面已经实现了第一版 ... -
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
2015-12-30 15:55 10550这里在开始搭建环境之前请搭建先熟悉了解Dubbox、Red ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4947最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
Javascript: unterminated string literal解决方法
2014-02-06 16:47 1980Javascript: unterminated strin ... -
身份证验证 80秒13亿数据校验
2014-01-15 13:41 9815/** * @Company asiainfo-linkag ... -
网页上播放视频的免费的播放器_CKPlayer
2013-12-12 14:17 2260今天在工作的过程中遇到一个功能:在网页中加入视频播放器 ... -
Ehcache 整合Spring 使用页面、对象缓存
2013-12-12 13:04 1299Ehcache 整合Spring 使用页面、对象缓存 E ... -
js 手机验证
2013-12-11 13:25 714** * 手机号:目前全国有27种手机号段。 * 移动有16 ... -
Freemarker使用
2013-12-04 16:57 1134以下内容全部是网上收 ... -
Hibernate数据缓存策略
2013-11-27 23:28 1140(一)hibernate数据缓存策略 缓存是数据 ... -
国内开源cms
2013-07-03 16:51 7http://www.jeecms.com/ -
FCkediter 整个struct2
2013-05-19 18:52 1435在这里总结一下今天使用Fckediter 和在整合Struct ...
相关推荐
在J2EE框架中,开发过程中常常会遇到一些与用户交互相关的技术问题,如重复提交、重复刷新以及防止用户后退导致的数据不一致。这些问题在实际应用中可能会对系统的稳定性和数据完整性造成影响,因此需要采取相应的...
规范的目的是为了统一开发标准,减少错误和不一致性,适用于J2EE开发人员、美工、产品经理、开发经理以及质管人员。在项目启动阶段,所有相关人员需熟悉此规范,确保在需求分析、详细设计和编码过程中遵循。 **2. ...
在开发Web应用时,用户可能会由于网络延迟或其他原因导致同一操作(如表单提交或文件上传)被意外多次触发,这通常称为重复提交或重复上传问题。为避免这种情况,我们需要采取措施来确保数据的一致性和完整性。本篇...
在实际开发过程中,数据库管理也至关重要。虽然未提供数据库文件的详细信息,但"vote.mdb"可能是一个Access数据库文件,用于存储投票项目、选项、用户信息以及投票记录等相关数据。Access数据库在小型项目中常用,...
在上述示例中,`<s:form>`标签用于定义表单,`<s:textfield>`用于创建输入字段,而`<s:token>`用于防止表单重复提交。 2. **ModelDriven模式**: `ModelDriven`接口使得Action类可以直接与业务对象(BO,Business ...
3. **使用Token防止表单重复提交**: 表单重复提交可能导致数据不一致,尤其是在并发环境中。Token机制是一种常见的解决方案。学生需要在服务端生成一个唯一的Token,并将其存储在会话或Cookie中,同时将Token发送...
3. **Token防止表单重复提交**:为避免用户因误操作导致的重复数据提交,可以采用Token机制。在用户提交表单时生成一个唯一的Token值,将其存储在服务器端(如Session)和客户端(如隐藏字段)。再次提交时,服务器...
- **通过request对象**:Servlet可以通过`HttpServletRequest`对象获取客户端发送的数据,如表单提交的信息。 - **通过response对象**:Servlet可以通过`HttpServletResponse`对象向客户端发送响应,包括HTML、JSON...
JEECG代码生成器是一款针对J2EE开发者的高效开发工具,旨在通过自动化的方式解决传统手工编码中的重复性劳动问题,提升开发效率与代码质量。它能够有效整合并管理各个孤立的信息系统,形成统一的技术栈与开发规范,...
4. **Token防止重复提交**:为了防止用户意外或恶意的重复提交,项目中使用了Token拦截器。每个请求会生成一个唯一的Token,如果同一请求再次提交,系统会检查Token的有效性,从而避免重复操作。 5. **页面设计与...
【JSP编写的用户登录案例】是一个典型的Web开发实践,主要使用Java Server Pages(JSP)技术,结合J2EE平台,实现与数据库交互的用户登录功能,并且具备分页展示的效果。在这个案例中,我们可以深入理解JSP的核心...
在J2EE开发中,Struts2框架和AJAX技术的结合使用能够提供更优秀的用户体验,特别是在处理表单验证和实时交互方面。本实例主要讲解如何在Struts2中集成AJAX,实现注册用户的即时用户名可用性检查。这个功能对于防止...
10. 其他功能:支持异步调用、国际化、文件上传和防止重复提交等。 WebWork通过其丰富的特性和强大的功能,解决了Web层开发中的诸多挑战,提高了开发效率和应用质量。对于开发者来说,理解并掌握WebWork的原理和...
10. **其他功能**:WebWork支持异步调用、国际化、文件上传和防止重复提交等功能。 **WebWork简介** WebWork的核心组成部分包括Xwork和WebWork2。Xwork提供拦截器、表单验证、类型转换、OGNL表达式语言和IoC容器等...
#### 七、表单重复提交 **7.1 问题分析** - **原因分析**:用户可能由于网络延迟等原因导致多次点击提交按钮,造成数据重复。 - **解决方案**: - 使用Token机制防止重复提交。 - 在`struts.xml`中配置Token拦截器...
Struts是Java Web开发中的一款经典MVC框架,主要用于构建基于J2EE的企业级应用程序。在Struts框架中,处理用户登录是一个常见的需求。本文将深入探讨Struts如何实现登录功能,涉及的主要知识点包括Action、Form Bean...
10. **其他问题**:包括异步调用、国际化支持、文件上传、防止重复提交等。 #### 四、WebWork如何应对挑战 1. **数据输入**:WebWork通过其强大的表单验证机制和OGNL表达式语言实现对请求参数的解析与绑定,从而...
在实际应用中,还需要考虑更多细节,比如防止重复登录、优化用户体验等。此外,为了提高系统的可扩展性和性能,还可以考虑使用缓存技术或其他分布式解决方案来替代或增强现有的基于`HttpSession`的方案。
- **表单验证**:确保用户提交的数据符合预期格式。 - **SSL**:提供加密通信,保护数据传输安全。 #### 2. MVC模式 - **Model-View-Controller**:将数据模型、用户界面和控制逻辑分离,提高模块间解耦。 #### 3...
- **表单提交:** 如何通过 GET 和 POST 方式提交表单数据。 #### 36. errorPage 属性与应用范围 **知识点概述:** - **errorPage:** 指定错误页面,用于处理特定错误码。 - **异常处理:** 如何配置异常处理页面...