Java 应用与开发 - MVC 和框架初步应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 Java 应用与开发 MVC 和框架初步 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 December 17, 2018 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 学习目标 1. 理解 MVC 设计模式的概念与特点,初步认识框架产生的基 础。 2. 了解经典的 MVC 框架——Struts 2,学会使用 Eclipse 入 手编写一个 Struts 2 Web 应用。 3. 通过 Struts 2 的经典 MVC 框架设计和业务代码开发过程, 进一步思考、理解框架。 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 接下来⋯ Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 为 Web 应用增加 Struts 2 支持 在 Eclipse 中使用 Struts 2 Struts 2 的开发步骤小结 本节习题 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP0 码力 | 51 页 | 837.26 KB | 1 年前3
Nacos架构&原理
年产品规划会⼀起到舟山小岛上,关于是否开源的时候面临几个核心问题进行深度讨论,第⼀ 个是我们开源是否晚了,如何定位和打造竞争力;第二是内部有三个产品(Configserver 非持久注 册中心,VIPServer 持久化注册中心,Diamond 配置中心),是开源三个产品还是合成⼀个产品开 源;第三个问题是开源产品跟商业化产品的关系是什么,是否会削弱商业化产品的竞争力。围绕这 几个问题,我们吵到深夜两点。 开放性,设计和讨论保持社区互动和透明,方便大家协作。 架构图 整体架构分为用户层、业务层、内核层和插件,用户层主要解决用户使用的易用性问题,业务层主 要解决服务发现和配置管理的功能问题,内核层解决分布式系统⼀致性、存储、高可用等核心问题, 插件解决扩展性问题。 Nacos 架构 < 18 用户层 OpenAPI:暴露标准 Rest 风格 HTTP 接口,简单易用,方便多语言集成。 CLI:命令行对产品进行轻量化管理,像 git ⼀样好用。 业务层 服务管理:实现服务 CRUD,域名 CRUD,服务健康状态检查,服务权重管理等功能。 配置管理:实现配置管 CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能。 元数据管理:提供元数据 CURD 和打标能力,为实现上层流量和服务灰度非常关键。 19 > Nacos 架构 内核层 插件机制:实现三个模块可分可合能力,实现扩展点0 码力 | 326 页 | 12.83 MB | 9 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译What is Apache Shiro? Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验 证、授权、企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 简化开发人员实现应用程序安全所花费的时间和精力。 致力在所有应用环境下实现上述功能,小到命令行应用程序,大到企业应用中,而且不 需要借助第三方框架、容器、应用服务器等。当然 Shiro 的目的是尽量的融入到这样的应用环 境中去,但也可以在它们之外的任何环境下开箱即用。 Apache Shiro Features 特性 Apache Shiro是一个全面的、蕴含丰富功能的安全框架。下图为描述Shiro功能的框架图: Apache Shiro 1.2.x Reference Introduction 介绍 Authentication(认证), Authorization(授权), Session Management(会话管理), Cryptography(加密)被 Shiro 框架的开发团队称之为应用安全的四大基石。那么就让我们来 看看它们吧: Authentication(认证):用户身份识别,通常被称为用户“登录” Authorization(授权):访问控制。比如某个用户是否具有某个操作的使用权限。0 码力 | 196 页 | 2.34 MB | 1 年前3
跟我学Shiro - 张开涛........................................................................................ 95 会话存储/持久化 ................................................................................................. 跟我学 Shiro——http://jinnianshilongnian.iteye.com/ 5 第一章 Shiro 简介 简介 Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相 当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时 可能并不需要那么复杂的东西,所以使用小而简单的 通过 相应的接口注入给 Shiro 即可。 接下来我们分别从外部和内部来看看 Shiro 的架构,对于一个好的框架,从外部来看应该 具有非常简单易于使用的 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展 的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro参考手册中文版Shiro What is Apache Shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应 该尽可能掩盖复杂的地方,露出一个干净而直观的 API,来简化开发人员在使他们的应用程序安全上的努力。 视图在所有应用程序环境下实现这些目标——从最简单的命令行应用程序到最大的企业应用,不强制依赖其 他第三方框架,容器,或应用服务器。当然,该项目的目标是尽可能地融入到这些环境,但它能够在任何环境下立 即可用。 Apache Shiro Features Apache Shiro 是一个拥有许多功能的综合性的程序安全框架。下面的图表展示了 Shiro 的重点,并且这个参考手册也 会与之类似的被组织起来: 其是以下这些: Web Support:Shiro 的 web 支持的 API 能够轻松地帮助保护 Web 应用程序。 Caching:缓存是 Apache Shiro 中的第一层公民,来确保安全操作快速而又高效。 Concurrency:Apache Shiro 利用它的并发特性来支持多线程应用程序。 Testing:测试支持的存在来帮助你编写单元测试和集0 码力 | 92 页 | 1.16 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . 85 8.1.1 泛型的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 8.1.2 集合框架中的泛型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 8.2 泛型类与泛型方法 . . . . . . . . . . . . 290 23.6 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 24 MVC 和框架初步 293 24.1 Java Web 应用的开发演化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 24.1.1 JSP . 294 24.1.2 Servlet 方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 24.1.3 框架方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 24.1.4 那么我们需要什么? . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Java 应用系统开发 - ServletContext 和 Web 配置ServletContext 对象。 注意 如果在 ServletContext 对象中保存的对象信息需要长久保存,一 般编写 ServletContext 对象的监听器,在此对象销毁之前将其中 保存的对象数据进行持久化处理,如保存到数据库或者文件中。 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 Web 应用环境对象的生命周期 ServletContext ServletContext 对象。 注意 如果在 ServletContext 对象中保存的对象信息需要长久保存,一 般编写 ServletContext 对象的监听器,在此对象销毁之前将其中 保存的对象数据进行持久化处理,如保存到数据库或者文件中。 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 Web 应用环境对象的类型和取得 Web 应用环境对象是接口javax web.xml Web 的配置文件为/WEB-INF/web.xml,/WEB-INF 目录 是� Web 服务器保�的目录,客户端浏览器无法直接访问该目 录下的任何文件,Struts、Spring 等框架都将配置文件保存在该 目录下。 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 web.xml 的主要配置项 ▶ Servlet 声明(Servlet)0 码力 | 33 页 | 668.91 KB | 1 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 01<% } %> 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。0 码力 | 67 页 | 792.43 KB | 1 年前3
Hello 算法 1.1.0 Java版忘曲线”来 复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。推荐的题单和刷题计划请见此 GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一” ”。 2. 归:触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。 而从实现的角度看,递归代码主要包含三个要素。 1. 终止条件:用于决定什么时候由“递”转“归”。 2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数。 3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层。 观察以下代码,我们只需调用函数 recur(n) ,就可以完成 间效率上与迭代相当。这种情况被称为尾递归(tail recursion)。 ‧ 普通递归:当函数返回到上一层级的函数后,需要继续执行代码,因此系统需要保存上一层调用的上下 文。 ‧ 尾递归:递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无须继续执行其他 操作,因此系统无须保存上一层函数的上下文。 以计算 1 + 2 + ⋯ + ? 为例,我们可以将结果变量 res 设为函数参数,从而实现尾递归:0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版,但请放心,这是很正常的。 我们可以按照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3~5 轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一” ”。 2. 归:触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。 而从实现的角度看,递归代码主要包含三个要素。 1. 终止条件:用于决定什么时候由“递”转“归”。 2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数。 3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层。 观察以下代码,我们只需调用函数 recur(n) ,就可以完成 间效率上与迭代相当。这种情况被称为「尾递归 tail recursion」。 ‧ 普通递归:当函数返回到上一层级的函数后,需要继续执行代码,因此系统需要保存上一层调用的上下 文。 ‧ 尾递归:递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无须继续执行其他 操作,因此系统无须保存上一层函数的上下文。 以计算 1 + 2 + ⋯ + ? 为例,我们可以将结果变量 res 设为函数参数,从而实现尾递归:0 码力 | 376 页 | 17.59 MB | 1 年前3
共 28 条
- 1
- 2
- 3













