基于 Java EE 的企业应用系统设计 - Spring MVC 02大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 基于 Java EE 的企业应用系统设计 Spring MVC 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 June 5, 2017 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL References 9781771970310) 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ���� 转换器和格式化(Converter 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 转换器和格式化(Converter and Formatter) ▶ Spring MVC 框架具备数据自动绑定能力,但其数据绑定并 非没有任何限制,在如何正确绑定数据方面是杂乱无章的。 ▶ 例如,Spring0 码力 | 56 页 | 866.07 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . 10 2.1.1 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 数据类型转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.3 常量和变量 . . . . . . . . . . . . 39 ii 4.4.1 方法重写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.4.2 同名属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.4.3 关键字 super . . . . . . 3 关键字 static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.3.1 static 属性和方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3.2 初始化块 . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Java 应用与开发 - 面向对象编程进阶30, 2018 大纲 多态性 方法重载 关键字 static 关键字 final 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 static 属性、方法和初始化块的用法 4. 了解设计模式,掌握单例设计模式 5. 掌握 final 关键字的概念和使用方法 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 Graduate(); //�设 Graduate 类继承了 Student 类 父类引用对子类对象的能力屏蔽性 一个引用类型变量如果声明为父类的类型,但实际引用的是子类 对象,该变量则不能再访问子类中添加的属性和方法。 1 Student m = new Student(); 2 m.setSchool("ouc"); // 合法 3 Person e = new Student(); 4 e.setSchool("ouc"); Graduate(); //�设 Graduate 类继承了 Student 类 父类引用对子类对象的能力屏蔽性 一个引用类型变量如果声明为父类的类型,但实际引用的是子类 对象,该变量则不能再访问子类中添加的属性和方法。 1 Student m = new Student(); 2 m.setSchool("ouc"); // 合法 3 Person e = new Student(); 4 e.setSchool("ouc");0 码力 | 49 页 | 659.74 KB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译方服务、守护进程帐户、时钟守护任务或者其它--当前和软件交互的任何事件。 Subject 实例都和(也需要)一个 SecurityManager 绑定,当你和一个Subject 进行交互,这些交 互动作被转换成 SecurityManager 下Subject 特定的交互动作。 SecurityManager: SecurityManager 是 Shiro 架构的核心,配合内部安全组件共同组成 安 tyManager 可以配置多个复杂的 Realm,但是至少有一个是需 要的。 Shiro 提供开箱即用的 Realms 来连接安全数据源(或叫地址)如 LDAP、 JDBC、文件配置如INI和属性文件等,如果已有的Realm不能满足你的需求你也可以开发 自己的Realm实现。 和其它内部组件一样,Shiro SecurityManager 管理如何使用 Realms获取 Subject 实例所代表的安全和身份信息。 ect implementation),然而更好的做法是 你并不需要知道这些实现也不需要知道从哪里找到它们。 因为JAVA类型安全的特性,你必须对通过 get* 获取的对象进行强制类型转换,这么多强 制转换非常的丑陋、累赘并且会和你的类紧耦合。 SecurityUtils.setSecurityManager 方法会将 SecurityManager 实例化为虚拟机的单独静 态实例,在大多数程序中没有问题,但如果有多个使用0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版可能配置多个 Realms,但至少有一个是必须的。 Shiro 提供了立即可用的 Realms 来连接一些安全数据源(即目录),如 LDAP,关系数据库(JDBC),文本配 置源,像 INI 及属性文件,以及更多。你可以插入你自己的 Realm 实现来代表自定义的数据源,如果默认地 Realm 不符合你的需求。 像其他内置组件一样,Shiro SecurityManager 控制 Realms 你的几点原因: 它需要你了解和实例化一个直接实现。这将会更好,如果你不需要了解具体的实现和在哪里可以找到它们。 由于 Java 的类型安全性,你需要转换通过 get*方法获取的对象来得到它们具体的实现。如此多的转换是丑陋 的,冗长的,并使你和实现类紧密连接起来。 SecurityUtils.setSecurityManager 方法调用在一个 VM 静态单例中实例化 SecurityManager Sections INI 基本上是一个文本配置,包含了由唯一命名的 section 组织的键/值对。键只是每个 section 唯一,而不是在整个 配置中(与 JDK 属性不同)。不过每个 section 都可以被看作单一的属性定义。 注释行能够以散列字符(# - 也就是"hash","pound"或"number"符号)或分号(";")开始。 以下是 Shiro 能够理解的 section0 码力 | 92 页 | 1.16 MB | 1 年前3
跟我学Shiro - 张开涛码来证明。 在 shiro 中,用户需要提供 principals (身份)和 credentials(证明)给 shiro,从而应用能 验证用户身份: principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。 一个主体可以有多个 principals,但只有一个 Primary principals,一般是用户名/密码/手机号。 credentials:证 的顺序,如果删除“securityManager.realms=$myRealm1,$myRealm2”,那 么 securityManager 会按照 realm 声明的顺序进行使用(即无需设置 realms 属性,其会自动 发 现 ) , 当 我 们 显 示 指 定 realm 后 , 其 他 没 有 指 定 realm 将 被 忽 略 , 如 “securityManager.realms=$myRealm1”,那么 户名/密码为 zhang/123; 3、ini 配置(shiro-jdbc-realm.ini) 1、变量名=全限定类名 会自动创建一个类实例 2、变量名.属性=值 自动调用相应的 setter 方法进行赋值 3、$变量名 引用之前的一个对象实例 4、测试代码请参照 com.github.zhangkaitao.shiro.chapter2.LoginLogoutTest0 码力 | 219 页 | 4.16 MB | 10 月前3
Java 应用与开发 - JSP (Java Server Page)Servlet 版本的时间是 否一致,如果一致则执行 servlet 的处理请求方法,类似于 doGet 或 doPost,发送响应给浏览器; 4. 版本时间不一致,Web 服务器调用转换系统,将 JSP 的文 本代码转换为 Servlet 的 Java 代码; 5. 将 Java 代码编译为 class 文件; 6. 调用 Servlet Class 的相应方法处理请求并返回响应。 大纲 JSP 指令指示一个 JSP 页面的属性和特征,JSP 指令不会产生 任何的输出到当前输出流中。 O JSP 指令 ▶ page 指令,用于定义 JSP 页面级的其他元素特征。 ▶ include 指令,用于嵌入另一个文本文件的内容到本页面。 ▶ taglib 指令,用于引入第三方 JSP 扩展标记类库。 O JSP 指令的语法 1 <%@ 指令名 属性名="值" 属性名="值" %> 大纲 JSP JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 page 指令 page 指令定义应用于整个页面的属性。 O page 指令语法 1 <%@ page 属性名="属性值" %> O page 指令属性 ▶ language=”java”,指定页面语言。 ▶ contentType=”text/html; charset=gb2312”,指定页面的内0 码力 | 47 页 | 740.36 KB | 1 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 01中使用基于 XML 的配置文件,可以编辑配置而无需 重新编译应用程序。 4. Spring MVC 实例化控制器,并根据用户输入来构造 bean。 5. Spring MVC 可以自动绑定用户输入并正确地转换数据类型。 6. Spring MVC 内置了常见的校验器,可以校验用户输入,若校验不 通过则重定向回输入表单。 7. Spring MVC 支持国际化和本地化,支持根据用户区域显示多国语 言。 name="prefix" value="/WEB-INF/jsp/" />视图解析器配置有前缀和后缀两个属性,View 路径将缩短。例 如,仅需提供“myPage”,而不必再设置视图路径为/WEB-INF/ jsp/myPage.jsp,视图解析器将会自动增加前缀和后缀。 大纲 Java Web 应用的开发演化 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 RequestMapping 注解类型 RequestMapping 除了具有 value 属性外,还有其他属性: method 用来指示该方法仅处理哪些 HTTP 方法。 @RequestMappinq(value = "/order-process", method={RequestMethod 0 码力 | 67 页 | 792.43 KB | 1 年前3
Hello 算法 1.0.0b4 Java版right = buildTree(n - 1); return root; } Figure 2‑13. 满二叉树产生的指数阶空间复杂度 对数阶 ?(log ?) 对数阶常见于分治算法和数据类型转换等。 例如“归并排序”算法,输入长度为 ? 的数组,每轮递归将数组从中点划分为两半,形成高度为 log ? 的递 归树,使用 ?(log ?) 栈帧空间。 再例如“数字转化为字符串”,输入任意正整数 反码:正数的反码与其原码相同,负数的反码是对其原码除符号位外的所有位取反。 ‧ 补码:正数的补码与其原码相同,负数的补码是在其反码的基础上加 1 。 Figure 3‑4. 原码、反码与补码之间的相互转换 显然,「原码」最为直观,然而数字却是以「补码」的形式存储在计算机中的。这是因为原码存在一些局限 性。 一方面,负数的原码不能直接用于运算。例如,我们在原码下计算 1 + (−2) ,得到的结果是 (−2) = 00000001 + 10000010 = 10000011 = −3 3. 数据结构 hello‑algo.com 42 为了解决此问题,计算机引入了「反码」。例如,我们先将原码转换为反码,并在反码下计算 1 + (−2) ,并 将结果从反码转化回原码,则可得到正确结果 −1 。 1 + (−2) = 00000001(原码) + 10000010(原码) = 00000001(反码)0 码力 | 342 页 | 27.39 MB | 1 年前3
Java 应用与开发 - Java EE 过滤器编程doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 13 throws IOException, ServletException { 14 //转换为 HTTP 请求对象 15 HttpServletRequest request = (HttpServletRequest)req; 16 if (request.getContentType() 对文字乱码问题,可以在过滤器中进行集中处理,避免在每个 Servlet 或 JSP 中进行请求字符编码的转换。 O 修改请求对象的属性 调用请求对象的 setAttribute 方法对请求对象的属性进行增加、 修改和删除。 1 request.setAttribute("infoType", "image/jpeg"); //�定请求对象的一个属性 2 request.removeAttribute("userId"); 过滤器概述 Java EE 过滤器 API Java EE 过滤器编程和配置 过滤器的主要任务 本节习题 处理 HTTP 响应 过滤器可以在 HTTP 响应到达客户端浏览器之前,对响应头和 响应体进行转换、修改等操作。 过滤器实现对响应处理的代码要在 FilterChain 的 doFilter() 方 法之后完成,而对请求处理的代码要在 doFilter() 方法之前进 行,流程如下: 1 public0 码力 | 31 页 | 605.91 KB | 1 年前3
共 36 条
- 1
- 2
- 3
- 4













