表单验证

(JavaEE-05)Response与Request

懵懂的女人 提交于 2019-11-28 12:47:28
如何才算掌握Servlet ServletConfig ServletContext Request Response Cookie Session 上面这些对象(当然不止这些,剩下的对象查阅ServletAPI,不是JavaEEAPI)都是web服务器在条用Servlet时所创建的交给Servlet的对象,将这些对象的API掌握熟练,就基本上掌握Servlet技术了,剩下的就是你的Java编程功力了,基本都是设计方面的事了。 Web服务器 web服务器接受到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的 request对象 和代表相应的 response对象 。如果需要获取客户端的相关信息,就使用 request对象 ,需要向客户端发送数据,就使用 response对象 。 这里的request对象和response对象都不是标准的HTTP协议的请求和响应,而是Web服务器根据标准的HTTP协议的请求和响应,然后再根据Servlet规范(接口)实现的Web对象。 ###Servlet技术 其实Servlet技术就是一套接口,这个接口是由当年的SUN公司指定的, Tomcat 是一个web服务器,也是Servlet和JSP的容器,为什么它是Servlet与JSP的容器呢,原因就是它实现了SUN规定的那一套关于Servlet和JSP的规范与接口,所以在查阅

【JS教程26】表单验证

本小妞迷上赌 提交于 2019-11-28 07:45:29
表单验证 1、什么是正则表达式: 能让计算机读懂的字符串匹配规则。 2、正则表达式的写法: var re=new RegExp('规则', '可选参数'); var re=/规则/参数; 3、规则中的字符 1)普通字符匹配: 如:/a/ 匹配字符 ‘a’,/a,b/ 匹配字符 ‘a,b’ 2)转义字符匹配: \d 匹配一个数字,即0-9 \D 匹配一个非数字,即除了0-9 \w 匹配一个单词字符(字母、数字、下划线) \W 匹配任何非单词字符。等价于[^A-Za-z0-9_] \s 匹配一个空白符 \S 匹配一个非空白符 \b 匹配单词边界 \B 匹配非单词边界 . 匹配一个任意字符 var sTr01 = '123456asdf'; var re01 = /\d+/; //匹配纯数字字符串 var re02 = /^\d+$/; alert(re01.test(sTr01)); //弹出true alert(re02.test(sTr01)); //弹出false 4、量词:对左边的匹配字符定义个数 ? 出现零次或一次(最多出现一次) + 出现一次或多次(至少出现一次) * 出现零次或多次(任意次) {n} 出现n次 {n,m} 出现n到m次 {n,} 至少出现n次 5、任意一个或者范围 [abc123] : 匹配‘abc123’中的任意一个字符 [a-z0-9] :

Django表单(forms.ModelForm)

扶醉桌前 提交于 2019-11-28 07:28:15
在定义forms.py表单的时候,很多字段信息是和models.py文件里的模型基本上是一模一样的, 为了避免重复的代码,我们引入了ModelForm,将模型和表单进行绑定,示例代码如下: (用法和forms.Form表单一样) 1、models.py文件 from django.db import models from django.core import validators class Book(models.Model): title = models.CharField(max_length=100) page = models.IntegerField() # price = models.FloatField() # 可以直接在建表的时候单独给某个字段加验证器:限制价格不能超过1000 price = models.FloatField(validators.MaxValueValidator(limit_value=1000)) 2、app新建forms.py文件 from django import forms # 注意是django下的forms from one.models import Book # 将表单AddBookForm与Book模型进行绑定 # 继承的是forms.ModelForm class AddBookForm(forms

什么是csrf攻击

末鹿安然 提交于 2019-11-28 07:22:02
一.CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 二.CSRF可以做什么?   你这可以这么理解CSRF攻击: 攻击者盗用了你的身份,以你的名义发送恶意请求 。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。 三.CSRF漏洞现状   CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。 四.CSRF的原理   下图简单阐述了CSRF攻击的思想:      从上图可以看出,要完成一次CSRF攻击, 受害者必须依次完成两个步骤 :   1. 登录受信任网站A,并在本地生成Cookie 。   2. 在不登出A的情况下,访问危险网站B 。   看到这里,你也许会说:“ 如果我不满足以上两个条件中的一个

关于小程序表单验证解决方案

混江龙づ霸主 提交于 2019-11-28 05:32:42
小程序中遇到了表单验证,刚开始想自己写一个正则.但是最后还是使用了 WxValidate.js这个东西,他只需要将一个js文件放进你的项目,用的时候引用一下,就可以了.非常的方便. 接下来说一下怎么使用, 1.在github下载WxValidate.js 2.放入你的项目其中一个文件夹下. 3.在需要的页面引用下 import WxValidate from '../vendor/utils/WxValidate.js' 4. 在onLoad函数中加入 this.initValidate() //验证规则函数 5.在onLoad同级放入 //报错 showModal(error) { wepy.showModal({ content: error.msg, showCancel: false }) } //调用验证函数 formSubmit(e) { const params = e console.log(this.WxValidate, 'params') //校验表单 if (!this.WxValidate.checkForm(params)) { const error = this.WxValidate.errorList[0] this.showModal(error) return false } return true } //验证函数方法

浅谈跨域攻击及预防

半世苍凉 提交于 2019-11-28 04:16:33
一.CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF 二.CSRF可以做什么?   你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。 三.CSRF漏洞现状   CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。 四.CSRF的原理   下图简单阐述了CSRF攻击的思想:      从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:   1.登录受信任网站A,并在本地生成Cookie。   2.在不登出A的情况下,访问危险网站B。   看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的

jQuery(一)选择器与表单验证

こ雲淡風輕ζ 提交于 2019-11-28 04:03:22
$(document).ready()可以简写成   $(function(){     //执行的代码   }); 将DOM对象转换为jQuery对象   工厂函数:$()就可以。 DOM对象转jQuery对象:   使用函数$()进行转换:$(DOM对象)   var t = document.getElementById("txtName");//DOM对象   var $t = $(t);//jQuery对象   jQuery对象通常用$开头,在事件中$(this),this表示触发事件的对象 jQuery对象转DOM对象   var $t=$("#tname");//jQuery对象   var t = $t[0];//DOM对象   也可以使用get(index)方法得到DOM对象   var t = $("#tname").get(0);//DOM对象 常用语法:   示例:$("#current").addClass('current')//为标签添加类样式   css('属性','属性值')//为标签设置css样式的值   removeClass()//为标签移除类样式   next()//获取标签其后紧邻的同辈标签   attr('标签属性','属性值')//为标签属性设置值     示例:$("#img").attr("src","img/tupian.png

element-ui 开发备忘

社会主义新天地 提交于 2019-11-28 01:41:57
目录 购物清单的数据结构说明 1. <el-radio> 的 label 属性 2. 在 <el-table> 中放入表单组件 3. 表单验证时填写正确的 prop 属性 总结 附:极简购物清单的完整代码 本文针对本人这两天进行界面开发的过程中遇到的一些坑点和要点进行记录,留待日后备忘。 本篇博客将用一个极简的购物清单的例子讲解,例子的完整代码可见最后。 购物清单的数据结构说明 shoppingList: { supermarket: '', // 超市名称,非空,字符串 status: true, // 状态位,默认为 true items: [ // 购物清单项,0 到多个 { name: '', // 商品名,非空,字符串 quantity: 0 // 数量,非空,整数 } ] } 了解了购物清单的数据结构之后,就可以开始讲解了。 1. <el-radio> 的 label 属性 根据 官方文档 , label 属性可以为 String 、 Number 或 Boolean ,但官方文档中没有说明的是,如果要给 label 属性设置 Number 或 Boolean 值,则需要加上冒号变成 :label ,不然像 "0" 、 "true" 这类的值会被当作 String 处理。 <!-- 感兴趣的可以试着去掉 label 前的冒号, 你会发现在页面中没有一个 radio

element-ui表单验证无效解决

自古美人都是妖i 提交于 2019-11-28 01:14:18
最近在项目中遇到了一个需求,需要动态增减表单元素,同时给新增的表单元素增加校验规则。 element-ui官网 给出了解决方案:点击新增按钮时,向循环渲染的数组中push新的对象,数据驱动视图,通过增加数据的方式来增加新的dom元素;同样的,通过删除循环遍历的数据来达到删除dom的效果。 但是,校验规则不起作用,即使填写了表单已经提示未填写。在仔细检查后发现,element-ui的表单校验规则中, el-form-item绑定的prop必须和该item下的表单元素绑定的v-model值的名称一致 。但和通常表单不同的是,该表单是动态增减的, 对应el-form-item需要绑定的prop值必须带上遍历的索引值index: <el-form ref="..." :model="test"> <div v-for="(item, index) in test.line" :key="index"> <el-form-item :prop="'line.'+index+'.value1'" :rules="{...}"> <el-input v-model="item.value1"></el-input> </el-form-item> <el-form-item :prop="'line.'+index+'.value2'" :rules="{...}"> <el-input v

Yii2用Gii自动生成Module+Model+CRUD

别等时光非礼了梦想. 提交于 2019-11-28 01:08:55
1. 开启gii模块 common/config/main-local.php 加入下面代码 return [ 'modules' => [ 'gii' => [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['::1','127.0.0.1'], //只允许本地访问gii 'generators'=> [ /*重新定义gii model & crud的生成模板*/ 'module'=> [ 'class' => 'yii\gii\generators\module\Generator', 'templates'=> [ 'backend'=>'@common/gii/generators/module/default' ] ], 'model'=> [ 'class' => 'yii\gii\generators\model\Generator', 'baseClass'=> 'base\BaseActiveRecord', 'ns'=> 'common\models', 'templates'=> [ 'common'=>'@common/gii/generators/model/default', 'backend'=>'@common/gii/generators/model/backend' ] ], 'crud'=> [