表达式语言(EL) JSTL 转换器和格式化(Converter and Formatter) ▶ Spring MVC 框架具备数据自动
绑定能力,但其数据
绑定并 非没有任何限制,在如何正确
绑定数据方面是杂乱无章的。 ▶ 例如,Spring 总是试图用默认的语言区域将日期输入
绑定到 java.util.Date。 ▶ 假如想让 Spring 使用不同的日期样式,就需要使用 Converter 或者 Formatter。 2017-05-31。默认情况下,Spring 会期待用户输入的 日期样式与当前语言区域的日期样式相同。例如,对于美国的用 户而言,就是月/日/年格式。 如果希望 Spring 在将输入的日期字符串
绑定到 Date 时使用不同 的日期样式,则需要编写一个 Converter,才能将字符串转换成 日期。 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) ,就不 需要在 controller 类中将字符串转换成日期了。 saveEmployee 方法的 BindingResult 参数中放置了 Spring 的所有
绑定错误。该方法利用 BindingResult 记录所有
绑定错误。
绑定错 误也可以利用 errors 标签显示在一个表单中,如 EmployeeForm.jsp 中 error 标签
0 码力 |
56 页 |
866.07 KB
| 1 年前 3
API 的含义: Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互 的任何东西都是 Subject,如网络爬虫,机器人等;即一个抽象概念;所有 Subject 都绑定 到 SecurityManager,与 Subject 的所有交互都会委托给 SecurityManager;可以把 Subject 认 为是一个门面;SecurityManager 才是实际的执行者; new IniSecurityManagerFactory("classpath:shiro.ini"); //2、得到 SecurityManager 实例 并绑定给 SecurityUtils org.apache.shiro.mgt.SecurityManager securityManager = factory.getInstance(); n.iteye.com/ 11 2.2、接着获取 SecurityManager 并绑定到 SecurityUtils,这是一个全局设置,设置一次即可; 2.3、通过 SecurityUtils 得到 Subject,其会自动绑定到当前线程;如果在 web 环境在请求结 束时需要解除绑定;然后获取身份验证的 Token,如用户名/密码; 2.4、调用 subject.login 方法进行登录,其会自动委托给
0 码力 |
219 页 |
4.16 MB
| 10 月前 3
贝托谢姆和麦克尼利)。 1986 Sun 公司上市。 1985 Sun 公司推出著名的 Java 语言。 2001 9.11 事件前,Sun 市值超过 1000 亿美元;此后,由于互联网泡沫的破碎,其市 值在一个月内跌幅超过 90%。 2004 Sun 公司和微软在旷日持久的 Java 官司中和解,后者支付前者高达 10 亿美元的 补偿费。 2006 共同创始人麦克尼利辞去 CEO 一职,舒瓦茨担任 序设计语言系统所定义、不可再划分的数据类型。所占内存大小固定,与软硬件环境 无关,在内存中存放的是数据值本身。Java 的基本数据类型包括:整型(byte、short、 int、long)、浮点型(float、double)、逻辑型(boolean)和字符型(char)。引用数据类 型(复合数据类型)在内存中存放的是指向该数据的地址,不是数据值本身。引用数 据类型包括类、数组、接口等。 数据类型的基本要素包括: • 字符型常量 单引号。 字符串常量 双引号。 示例代码:常量的声明 1 final int MAX = 10; 2 final float PI =3.14f; 变量 变量的属性包括变量名、类型、值和地址。Java 语言程序中可以随时定义变量,不 必集中在执行语句之前。 示例代码:变量声明、初始化和赋值 1 int i , j = 0; 2 i = 8; 3 float k; 4 k
0 码力 |
330 页 |
6.54 MB
| 1 年前 3
百度的 braft、Apache Ratis;因为 Nacos 是 Java 技术栈,因此只能在 JRaft、ZAB、Apache Ratis 中选择,但是 ZAB 因为和 Zookeeper 强绑定,再加上希望可以和 Raft 算法库的支持团队 随时沟通交流,因此选择了 JRaft,选择 JRaft 也是因为 JRaft 支持多 RaftGroup,为 Nacos 后 面的多数据分片带来了可能。 节点对于海量注册请求的统⼀协调和存储。 设计思想 Distro 协议的主要设计思想如下: Nacos 每个节点是平等的都可以处理写请求,同时把新数据同步到其他节点。 每个节点只负责部分数据,定时发送自己负责数据的校验值到其他节点来保持数据⼀致性。 每个节点独立处理读请求,及时从本地发出响应。 下面几节将分为几个场景进行 Distro 协议工作原理的介绍。 数据初始化 新加入的 Distro 节点会进行全量数据拉取。具体操作是轮询所有的 产品 推送模型 数据⼀致性 痛点 说明 Nacos Config 异步 Servlet 基于 MD5 比 对⼀致性 http 短连接,30 秒定 期创建销毁连接,GC 压力大 md5 值计算也有⼀定 开销,在可接受范围内 Nacos Naming HTTP/UDP UDP 推送 + 补偿查询 丢包,云架构下无法 反向推送 配置和服务器模块的数据推送通道不统⼀,http 短连接性能压力巨大,未来
0 码力 |
326 页 |
12.83 MB
| 10 月前 3
ace complexity)。 ‧“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。 ‧“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间 增长的“快慢”。 复杂度分析克服了实际测试方法的弊端,体现在以下两个方面。 ‧ 它独立于测试环境,分析结果适用于所有运行平台。 第 2 章 复杂度分析 hello‑algo.com 根据以上方法,可以得到算法的运行时间为 (6? + 12) ns : 1 + 1 + 10 + (1 + 5) × ? = 6? + 12 但实际上,统计算法的运行时间既不合理也不现实。首先,我们不希望将预估时间和运行平台绑定,因为算 法需要在各种不同的平台上运行。其次,我们很难获知每种操作的运行时间,这给预估过程带来了极大的难 度。 2.3.1 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势。 第二步:判断渐近上界 时间复杂度由 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用,其他 项的影响都可以忽略。 表 2‑2 展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当 ? 趋于无穷大时, 这些常数变得无足轻重。 表 2‑2 不同操作数量对应的时间复杂度 操作数量 ?(?) 时间复杂度 ?(?(?)) 100000
0 码力 |
378 页 |
18.47 MB
| 1 年前 3
space complexity」。 ‧“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。 ‧“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间 增长的“快慢”。 复杂度分析克服了实际测试方法的弊端,体现在以下两个方面。 ‧ 它独立于测试环境,分析结果适用于所有运行平台。 第 2 章 复杂度分析 hello‑algo.com 根据以上方法,可以得到算法的运行时间为 (6? + 12) ns : 1 + 1 + 10 + (1 + 5) × ? = 6? + 12 但实际上,统计算法的运行时间既不合理也不现实。首先,我们不希望将预估时间和运行平台绑定,因为算 法需要在各种不同的平台上运行。其次,我们很难获知每种操作的运行时间,这给预估过程带来了极大的难 度。 2.3.1 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势。 第二步:判断渐近上界 时间复杂度由 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用,其他 项的影响都可以忽略。 表 2‑2 展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当 ? 趋于无穷大时, 这些常数变得无足轻重。 表 2‑2 不同操作数量对应的时间复杂度 操作数量 ?(?) 时间复杂度 ?(?(?)) 100000
0 码力 |
376 页 |
17.59 MB
| 1 年前 3
space complexity」。 ‧“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。 ‧“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间 增长的“快慢”。 复杂度分析克服了实际测试方法的弊端,体现在以下两个方面。 ‧ 它独立于测试环境,分析结果适用于所有运行平台。 第 2 章 复杂度分析 hello‑algo.com 根据以上方法,可以得到算法运行时间为 6? + 12 ns : 1 + 1 + 10 + (1 + 5) × ? = 6? + 12 但实际上,统计算法的运行时间既不合理也不现实。首先,我们不希望将预估时间和运行平台绑定,因为算 法需要在各种不同的平台上运行。其次,我们很难获知每种操作的运行时间,这给预估过程带来了极大的难 度。 2.3.1 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间,而是算法运行时间随着数据量变大时的增长趋势。 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用, 其他项的影响都可以被忽略。 第 2 章 复杂度分析 hello‑algo.com 30 表 2‑1 展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当 ? 趋于无穷大时, 这些常数变得无足轻重。 表 2‑1 不同操作数量对应的时间复杂度 操作数量 ?(?) 时间复杂度 ?(?(?)) 100000
0 码力 |
376 页 |
30.69 MB
| 1 年前 3