数据校验

struts2(四)之输入校验

人盡茶涼 提交于 2020-02-20 06:42:42
前言   这个本来是昨天就写好的,但是不知道为什么没有保存成功!但是今天起来再写一遍就当巩固一下知识吧。 一、输入校验概述   在以前我们写一个登录页面时,并没有限制用户的输入,不管用户输入什么,我们都存入数据库中,很显然这是不行的,我们需要 检测用户输入的文本是否合法,   是否符合我们需要的文本格式, 符合就放行,而 struts2中就有这种功能,能帮我们在服务器段进行判断 ,比如用户名不能为空,年龄只能在0-100之间等。现在   我们就来说说如何使用struts2中的校验功能把。   分为两种 :编程式校验和配置校验 (XML配置校验) 1)验证方式   客户端验证:javascript   服务端验证:逻辑验证   注意:如果客户端和服务端验证二选一,服务端必不可少。用户的输入验证,必须做,且工作量巨大。   实际开发中:服务端+客户端都需要验证 2)struts2的服务验证   在struts2的框架中,它也 提供了一个Map<表单的字段名,错误提示>,我们要做的:往map中存放错误信息 。 二、编程式校验 2.1、前提条件   前提:动作类必须继承ActionSupport         重写validate方法   注意:      1)validate方法会在动作方法执行之前,进行验证。      2) 实现Validateable接口

Django 中 ModelForm 的使用

倾然丶 夕夏残阳落幕 提交于 2020-02-19 13:57:54
定义 ModelForm 定制 ModelForm Meta 在 Form 中另外定义 Field 值得一提的一些 Field 转化 AutoField BooleanField ForeignKey ManyToManyField 初始化 ModelForm 校验 ModelForm 储存 ModelForm 对象 定义一个 Form 来新建、更新实例 什么是 ModelForm Model 在 Django 对应数据库模型 一个 Model 拥有多个 Model.Field Form 在 Django 对应表单 一个 Form 拥有多个 Form.Field ModelForm 即基于 Model 的 Form,把 Model 中的 Field 根据下图中的映射关系自动转化为 Form 中的 Field。 为什么使用 ModelForm 利用 Model 生成 Form,提高 Model 复用性 如何使用 ModelForm 定义 ModelForm 举一个书籍管理例子 # Modelclass Article(models.Model): title = models.CharField(max_length=20, unique=True) author = models.ForeignKey('Author') 这个 Model 中定义了两个字段 title 储存书籍标题

0435-如何在CDH6.0中使用纠删码

若如初见. 提交于 2020-02-18 22:38:28
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 Fayson在前面的文章中介绍过《什么是HDFS的纠删码》,当时详细介绍了什么是纠删码,纠删码的实现原理,以及一些Benchmark的结果比较。 纠删码是CDH6/Hadoop3新加入的功能,之前的HDFS都是采用副本方式容错,默认情况下,一个文件有3个副本,可以容忍任意2个副本(DataNode)不可用,这样提高了数据的可用性,但也带来了2倍的冗余开销。例如3TB的空间,只能存储1TB的有效数据。而纠删码则可以在同等可用性的情况下,节省更多的空间,以rs-6-3-1024K这种纠删码策略为例子,6份原始数据,编码后生成3份校验数据,一共9份数据,只要最终有6份数据存在,就可以得到原始数据,它可以容忍任意3份数据不可用,而冗余的空间只有原始空间的0.5倍,只有副本方式的1/4,因此,可以大大节约成本。本文Fayson主要是介绍如何在CDH6.0中使用纠删码。 内容概述 1.通过CM启用纠删码 2.纠删码策略介绍 3.纠删码基本操作 4.纠删码实操 5.总结 测试版本 1.CM和CDH版本为6.0 2.Redhat7.4 3

0432-什么是HDFS的纠删码

风流意气都作罢 提交于 2020-02-18 21:46:36
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 Fayson在前面的文章中介绍过CDH6,参考《Cloudera Enterprise 6正式发布》和《如何在Redhat7.4安装CDH6.0》。CDH6主要集成打包了Hadoop3,包括Hadoop3的一些新特性的官方支持,比如NameNode联邦,纠删码等。纠删码可以将HDFS的存储开销降低约50%,同时与三分本策略一样,还可以保证数据的可用性。本文Fayson主要介绍纠删码的工作原理。 默认情况下,HDFS的数据块都会保存三个副本。副本提供了一种简单而健壮的冗余方式来最大化保证数据的可用性。数据的多副本同时可以尽量保证计算任务的本地化。 但副本方式成本是较高的:默认情况下三副本方式会在存储空间或其他资源(比如写入数据时的网络带宽)中产生200%的开销。对于较少访问的数据集(对集群的I/O影响相对不大),它们的第二个或者第三个副本会比较少访问,但是仍会消耗相同的存储空间。 因此可以使用纠删码(ErasureCoding)来代替多副本的方式,它使用更少的存储却可以保证相同级别的容错。在典型配置下,与三副本方式相比,EC可以将存储成本降低约50%

SQL注入原理

核能气质少年 提交于 2020-02-17 02:44:59
原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户 数据库 被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。 网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。 SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。 1.1.2 正文 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 首先让我们了解什么时候可能发生SQL Injection。 假设我们在浏览器中输入URL www.sample.com

Spring-MVC数据校验

拈花ヽ惹草 提交于 2020-02-16 19:14:09
数据校验有效防止用户的误输入以及恶意输入,通过数据校验可以非法进入系统,从而保证系统的健壮性 1.使用Spring自带的Validation校验框架 2.使用JSR303(java验证规范)实现校验功能 数据校验步骤: 1.配置文件中需要有以下代码(以上两种通过下面的配置都实现了): < mvc : annotation - driven > < / mvc : annotation - driven > ( mvc:annotation-driven 已经默认配置LocalValidatorFactoryBean,无需手动配置) 2.1使用Spring自带的Validation校验框架 1.首先定义一个UserValidator校验类,此类需要实现Validator接口(需要注解@Repository) 2.在UserValidator接口中进行校验方法的书写 3.在UserController中进行属性注入(装配方式 @Autowired @Qualifier(“userValidator”)),用注入的对象调用UserValidator中的方法 4.将信息传回jsp页面 2.2使用JSR303(java验证规范)实现校验功能 1.JSR303主要时通过注解的方式来完成数据校验在对应的实体类属性上加相应的注解 2.错误信息传递到errors中

Form的is_valid校验规则及验证顺序

半腔热情 提交于 2020-02-16 19:10:34
一、验证顺序 查看form下的源码 了解顺序 BaseForm为基类,中间包含了is_valid校验方法 @html_safe class BaseForm: ......... self.is_bound = data is not None or files is not None ....... @property def errors(self): """Return an ErrorDict for the data provided for the form.""" if self._errors is None: self.full_clean() #---------------调用校验方法 return self._errors def is_valid(self): #--------------开始校验 """Return True if the form has no errors, or False otherwise.""" return self.is_bound and not self.errors # ---------is_bound 中是数据和字段不能为空,否则就不校验,没问题后调用self.errors开始校验 ....... is_valid 的校验顺序 1. obj = MyForm(request.POST) 创建将要校验的实例 2.

async-validator 的中文文档翻译

混江龙づ霸主 提交于 2020-02-16 17:43:45
阿里出品的 antd 和 ElementUI 组件库中表单校验默认使用的 async-validator ,它在 gitbub 上也获得了 3.8k 的 star,可见这个库十分强大,奈何只有英文文档看的蛋疼,因此花点时间翻译一下以便日后查看和为新手同事提供文档,原文都以折叠的方式保留着,看不懂我的描述可以展开看看原文。 结合 github 上的例子能方便理解 (大部分原因是我英文水平不够,但是明明是中国人写的为啥不顺手写个中文的 readme 呢,虽然就算翻译成了中文也还是晦涩难懂。。。) 翻译时间: 2019/5/31 正文开始。 async-validator 一个用于表单异步校验的库,参考了 https://github.com/freeformsystems/async-validate Validate form asynchronous. A variation of https://github.com/freeformsystems/async-validate API 下述内容来自于 async-validate . 的早期版本 The following is modified from earlier version of async-validate . Usage 使用方法 基本的使用方法:定义一个 descriptor,将它传入 schema,得到一个

Django:(5)分页器 & forms组件

江枫思渺然 提交于 2020-02-15 01:29:28
Django组件:分页器 目录结构: urls.py from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path(r"index/",views.index) ] models.py from django.db import models # Create your models here. class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(decimal_places=2,max_digits=8) views.py from django.shortcuts import render # Create your views here. from app01.models import Book # 导入分页器 from django.core.paginator import Paginator,EmptyPage def index(request): """ # 批量插入数据 # for i in range(100)

redis实现用户多角色权限校验

百般思念 提交于 2020-02-13 18:18:12
业务场景 集团公司共具有12000名员工,内部OA系统中具有700多个角色,3000多个业务操作,23000多种数据,每位员工具有一个或多个角色,如何快速进行业务操作的权限校验? 解决方案 依赖set集合数据不重复的特征,依赖set集合hash存储结构特征完成数据过滤与快速查询 根据用户id获取用户所有角色 根据用户所有角色获取用户所有操作权限放入set集合 根据用户所有角色获取用户所有数据全选放入set集合 建议redis只是提供基础数据,不提供校验结果 Trips 10: redis应用于同类型不重复数据的合并操作 来源: https://www.cnblogs.com/ifme/p/12304400.html