数据校验

SSM-CRUD

元气小坏坏 提交于 2019-11-28 10:55:59
一、项目介绍 前端技术:query+Bootstrap+ajax+json 后端技术:SSM(spring、springMVC、mybatis)、JSR303校验 数据库:mysql 服务器:tomcat9.0 项目内容:对员工和部门进行增删改查操作、用pageHelper插件实现分页功能、全选/全不选等。 二、遇到的问题和解决方法 1、用pageHelper插件实现分页,pageSize=集合长度(pagehelper插件失效) pageInfo源码中: 1 if (list instanceof Collection) { 2 this.pageNum = 1; 3 this.pageSize = list.size(); 4 this.pages = this.pageSize > 0 ? 1 : 0; 5 this.size = list.size(); 6 this.startRow = 0; 7 this.endRow = list.size() > 0 ? list.size() - 1 : 0; 8 } 错误原因:pagehelper除了添加依赖,还需要在mybatis-config.xml中配置中添加拦截器PageInterceptor 1 <!-- https://mvnrepository.com/artifact/com.github.pagehelper

django搭建BBS-表单创建&注册

感情迁移 提交于 2019-11-28 10:51:33
django搭建BBS-表单创建&注册 0824自我总结 文件结构 app 接口 migrations __inint__.py admin.py 管理员页面注册表单用 apps.py bbsform.py form组件相关设置 models.py 模型存放 tests.py views.py 业务逻辑 avatar 图片文件存储 BBS 项目名称以及路由存放 __inint__.py settings.py urls.py wsgi.py static bootstrap-3.3.7-dist bootstrap文件网上下载的 jquery-3.4.1.min.js jq文件 templates 页面文件存放 一.django相关设置 settings.py """ Django settings for BBS project. Generated by 'django-admin startproject' using Django 1.11.22. For more information on this file, see https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see https://docs

爬虫结果数据完整性校验

╄→гoц情女王★ 提交于 2019-11-28 09:50:39
数据完整性分为三个方面: 1、域完整性(列)   限制输入数据的类型,及范围,或者格式,如性别字段必须是“男”或者“女”,不允许其他数据插入,成绩字段只能是0-100的整型数据,email字段的内容必须符合邮箱的正则表达式 2、实体完整性(行)   要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。也就是说,表中的主键在所有行上必须取唯一值。 3、参照完整性(表)   参照完整性是基于外键与主键之间的关系,从表中的外键必须在主表中存在数据,不能引用主表中不存在的主键值,在输入更改或者删除主表数据时,从表需要联动变化,保证了数据的一致性。 根据以上概念,对于数据的完整性校验是从 “列”、“行”、“表” 的维度进行的。 有些约束是在建表的时候就已经根据数据库定义语言DDL语句进行了约束。 1、域完整性约束   强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则) 2、实体完整性约束   强制实体完整性的方法有:索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性。 3、参照完整性约束   强制参照完整性的方法有:主外键关系 可以看到其实实体完整性是肯定符合的

【Django】Form组件

旧城冷巷雨未停 提交于 2019-11-28 08:15:53
目录 Form组件介绍 常用字段与插件 Form组件中所有内置字段 从数据库中获取数据 校验示例 检验手机号是否合法 方式一(基本操作) 方式二(自定义验证规则) 方式三(利用钩子) 验证密码一致性 钩子 局部钩子 全局钩子 进阶 批量添加样式 ModelForm Form套Form 原文: http://blog.gqylpy.com/gqy/269 @ *** Form组件介绍 在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息。 Django form组件就实现了上面的功能。 先总结一下,form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上传输入的内容 *** 一个简单的注册示例 form文件: from django import forms # 按照Django form组件的要求自己写一个类 # 且必须继承forms.Form class RegForm(forms.Form): user = forms.CharField(label="名称") pwd = forms.CharField(label=

聊聊我在这家公司设计的SSO

こ雲淡風輕ζ 提交于 2019-11-28 07:24:38
最近小明遇到一个需求:需要将几个独立的系统(子系统)汇总到一个集中的系统(父系统)当中,当用户在父系统登录过后,再点击这几个子系统,就可以免登录跳转到任意一个系统。当时一听,duang~duang~就有很多方案涌进来(吹牛的),但只有下面这个方案得到了leader的肯定,如今已经在线上跑着了,接下来给大家复盘一下。 看完这个需求,大家是不是第一感觉就是:这不就是SSO(单点登录)系统嘛? 单点登录 (英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一退出(single sign-off)就是指,只需要单一的退出动作,就可以结束对于多个系统的访问权限。 是的,没错,小明接到这个需求以后,整体思路也是按着SSO设想的,但是细想之后,发现不能完全照搬,要考虑项目的实际情况:比如已知的几个子系统是之前的已经开发好的,不能大动干戈,需要平滑接入父系统,而且根据需求,SSO的功能也没必要全部实现,简而言之,就是一个 阉割版 的SSO。 小明只需要实现:用户在父系统账号密码登录后

form组

我是研究僧i 提交于 2019-11-28 06:54:34
一.Form简介 1.form组件的主要功能 1.生成页面可用的HTML标签 2.对用户提交的数据进行校验 3.保留上次输入内容 2.页面显示的步骤 1.views.py中导入forms模块:from django import froms 2.定义继承自forms.Form的类,类中定义字段(和models中的写法相同) 3.视图函数中创建该类的对象 4.如果是get请求,向页面中渲染form对象。 3.简单使用form组件实现的例子 class Regform(forms.Form): # 查看所有字段(forms->fields->查看__all__) """ CharField对应input标签,users、pwd是input标签中的name的值,label对应label标签,widget的值对应input标签的类型 ChoiceField对应select标签,choices中的选项是option的值 """ users = forms.CharField(label="用户名", widget=forms.TextInput) pwd = forms.CharField(label="密码", widget=forms.PasswordInput) choice = forms.ChoiceField(label="性别", choices=((1, "alex"),

CRC(循环冗余校验)

与世无争的帅哥 提交于 2019-11-28 05:57:32
在线计算: http://www.ip33.com/crc.html 原文链接:https://blog.csdn.net/liyuanbhu/article/details/7882789 写给嵌入式程序员的循环冗余校验(CRC)算法入门引导 前言 CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,平常在项目中见到的CRC的代码多数都是那种效率非常低下的实现方式。 其实,在网上有一篇介绍CRC 算法的非常好的文章,作者是Ross Williams,题目叫:“A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS”。我常将这篇文章推荐给向我询问CRC算法的朋友,但不少朋友向我抱怨原文太长了,而且是英文的。希望我能写篇短点的文章,因此就有了本文。不过,我的水平比不了Ross Williams,我的文章肯定也没Ross Williams的写的好。因此,阅读英文没有障碍的朋友还是去读Ross Williams的原文吧。 本文的读者群设定为软件开发人员,尤其是从事嵌入式软件开发的程序员,而不是专业从事数学或通讯领域研究的学者(我也没有这个水平写的这么高深)。因此

form组件

冷暖自知 提交于 2019-11-28 05:19:16
1.form组件的介绍   在之前的开发过程中,我们都会用一种最传统的方式写form表单。我们以注册为例子,分别讲解传统方式和用form组件的区别。    传统方式:     首先创建一个注册页面,页面里面有form表单。     然后form表单能够将数据提交到后端,并且后端对数据进行有效性校验。     最后把校验的提示展示到页面上,方便使用者查看。    form组件的方式:     1.可以自动生成html代码     2.能够进行数据有效性校验     3.校验信息并展示出来,同时会将原来的数据保存    注: 前端和后端都可以对数据进行校验。前端通过JS进行校验,开发时,最好前端设置校验,后端必须写一个校验,因为前端的校验可以被跳过。 2.form组件的使用   在这里我直接给出例子,以展示如何使用form组件。 from django.shortcuts import render from django import forms from django.forms import widgets # 定义一个form组件的类 class RegForm(forms.Form): name = forms.CharField( max_length=16, label='用户名', # widgets是Django对HTML输入元素的表示,后面的attrs能够设置样式

jQuery校验

南笙酒味 提交于 2019-11-28 03:08:46
官网地址: http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jquery.validate.js" type="text/javascript"></script> 二、默认校验规则 (1)required:true 必输字段 (2)remote:"check.php" 使用ajax方法调用check.php验证输入值 (3)email:true 必须输入正确格式的电子邮件 (4)url:true 必须输入正确格式的网址 (5)date:true 必须输入正确格式的日期 日期校验ie6出错,慎用 (6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性 (7)number:true 必须输入合法的数字(负数,小数) (8)digits:true 必须输入整数 (9)creditcard: 必须输入合法的信用卡号 (10)equalTo:"#field" 输入值必须和#field相同 (11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)

部分APP无法代理抓包的原因及解决方法

强颜欢笑 提交于 2019-11-27 23:12:09
引言 HTTP应用层的抓包已经成为日常工作测试与调试中的重要一环,最近接触新项目突然之间发现之前的抓包手段都不好使了,顿时模块与模块之间的前端与服务之间的交互都变成了不可见,整个人都好像被蒙住了眼睛。 其实自己也很早就发现平时使用的支付宝等APP使用Fiddler 或 Charles这类代理抓包软件默认情况下就无法抓取请求的,但使用Wireshark这类网卡抓包软件可以看到这些APP的流量,而已这些流量也表明这些APP使用的主要应用层协议仍然是HTTP(https),不过我们的代理抓包工具却失效了。如今终于在实际工作中遇到了,也不得不解决了,毕竟眼前有东西挡住会让我浑身不适。 代理抓包原理 为了弄明白为什么Fiddler 或 Charles对这些APP无效,我们有必要先了解代理抓包我原理(当然您不想了解也是完全可以的,直接看后面的 实际操作 就可以完成,原理分析什么的可以有兴趣随时回来看) Fiddler 或 Charles 这类使用的代理的抓包软件与Wireshark是完全不同的(Wireshark 使用的网卡数据复制,只要是经过指定网卡都会被抓取),其只能对使用代理的应用层网络协议生效,比如常见的HTTP(https),Websocket 。 这里以HTTP为例简单说明下 客户端需要完成一次HTTP请求,通常需要先找到服务器,客户端会根据http请求中url的主机名