项目中客户端,服务端验证,数据库联合唯一约束,事务管理。

项目中有个需求,发布一个活动,记录下参加该活动的id和参与人id,同时调用接口,往收藏夹中添加一条记录,往交易表中添加一条记录。最后根据返回的结果,给出不同的提示信息。

1.如果当前的在jsp页面上面做处理,判断是否参与过。参加过之后,参加按钮不可点。没有参加的情况,参加按钮可以点。

2.jsp客户端加上js处理,参加按钮点击完之后,按钮不可点。

3.在controller中,业务逻辑开始前,再次java判断是否参加过该活动。

4.在数据库中参与表(活动id,参与人id)加上联合唯一约束。根据异常来处理不重复参加。

5.将以上几个表的操作放到一个事务中处理。避免参加人重复参加的情况。

总结:不要相信客户端的验证,不要相信网络的时延(多次点击多次提交的情况~~!!),正常情况下,以上1到5任何一个情况都可以限制参与人只参加一次活动,然而项目上线在实际中却还是出现了重复参加的记录。所以只有将以上情况联合起来一起处理。

项目中客户端,服务端验证,数据库联合唯一约束,事务管理。

时间: 2024-08-27 04:16:27

项目中客户端,服务端验证,数据库联合唯一约束,事务管理。的相关文章

.net使用FluentValidation进行服务端验证。

      背景 最近使用asp.mvc 做一个在线口语系统项目,在服务端验证问题遇到了一些小问题. 自己根据数据库表user定义一个数据库表实体对象UserDbEntity 1 [Table("User")] 2 public class UserDbEntity : DbEntityModelBase 3 { 4 [Description("用户名")] 5 [Required(ErrorMessage="*")] 6 public stri

ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)

ASP.NET MVC通过Model验证帮助我们很容易的实现对数据的验证,在默认的情况下,基于ValidationAttribute的声明是验证被使用,我们只需 要将相应的ValidationAttribute应用到Model的类型或者属性上即可.对于自定义验证,我们也只需要定义相应的Validation 就可以了,不过服务端验证比较简单,而客户端验证就要稍微复杂一些,本文提供一个简单的实例说明在ASP.NET MVC中实现自定义验证的基本步骤.[源代码从这里下载] 一.AgeRangeAttr

Android版网络办公系统应用客户端+服务端

该项目源码是Android版网络办公系统应用客户端+服务端,也是一个简单的网上办公系统的Android客户端,项目有服务端和客户端部分的源码的,客户端开发环境eclipse  AVD版本 4.0服务器 phpStudy 2013集成环境 Apache+php5.3+ISAPI模式 phpStudy 2013集成环境绿色版下载http://www.phpstudy.net/phpstudy/phpStudy2013d.zip官网   http://www.phpstudy.net/ android

MIME类型-服务端验证上传文件的类型

MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件. web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类. Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型 ,你可也去看一下. 最近在做用表单上传文件,想在服务端验证上传文件的类型,只允许上传GIF,JPG,ZIP, 我们有两种方法, 第一:检查文件的扩展名, 第二:检查文

JSR-303 Bean Validation 介绍及 Spring MVC 服务端验证最佳实践

任何时候,当要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情. 应用程序必须通过某种手段来确保输入参数在上下文来说是正确的. 分层的应用在很多时候,同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题. 为了避免这样或那样的情况发生,最好是将验证逻辑与相应的数据模型进行绑定. 1. JSR-303 Bean Validation JSR 是Java Specification Requests 的缩写,是指向 JCP(Java Community Proces

网易新闻应用源码完整版客户端+服务端源码

这个源码是从安卓教程网android分享过来的,看到这个项目比较不错,就转了.网易新闻应用源码完整版客户端+服务端源码,仿网易新闻,android端+服务器端1,为了加快访问速度,服务器端数据是写死了的,数据太多的就复制粘贴了,不是数据库查询的2,新闻图片下载代码注释掉了(网速给力的可以放开注释),显示的是默认图片 3.运行时记得改android端Constantvalues类里面的IP地址4,  UI结合使用的挺不错的等.<ignore_js_op>   <ignore_js_op&g

【试水CAS-4.0.3】第04节_CAS服务端通过数据库认证用户

本文源码下载:http://download.csdn.net/detail/jadyer/8911139 /** * @see ------------------------------------------------------------------------------------------------------------------------ * @see CAS服务端通过数据库认证用户 * @see 实现方式有两种,一是自己写数据库获取用户名密码再认证的类,一是借助C

Android应用性能测试(客户端-服务端)平台实现

Android应用性能测试(客户端-服务端)平台实现 东海陈光剑 2014年5月23日 2:01:05 开源项目代码: https://github.com/universsky/EmmageePlus (基于Emmagee) https://github.com/universsky/EmmageePlus/blob/master/src/com/netease/qa/emmagee/service/EmmageeService.java /* * Copyright (c) 2012-201

Spring Boot构建的Web项目如何在服务端校验表单输入

本文首发于个人网站:Spring Boot构建的Web项目如何在服务端校验表单输入 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使用validation注解来检查,并且当用户输入错误时,应用需要再屏幕上显示错误信息提示用户重新输入. 首先构建Maven项目,该项目的pom文件内容如下: <?xml version="1.0" encoding="UTF-8"?>