Java 应用与开发 - 异常处理大纲 异常的概念及分类 Java 异常处理机制 Java 应用与开发 异常处理 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 October 30, 2018 大纲 异常的概念及分类 Java 异常处理机制 学习目标 1. 掌握 Java 异常的概念和分类 2. 深入理解 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 异常的概念及分类 Java 异常处理机制 大纲 异常的概念及分类 Java 异常处理机制 C++ 中的异常处理 O 《The C++ Programming Language》 ▶ 一个库的作者可以检测出发生了运行时错误,但一般不知道 怎样去处理它们(因为和用户具体的应用有关); ▶ 另一方面,库的用户知道怎样处理这些错误,但却无法检查 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem resolution.) 大纲 异常的概念及分类 Java0 码力 | 33 页 | 626.40 KB | 1 年前3
Java EE 企业应用系统设计 - HTTP 请求处理编程大纲 HTTP 请求内容 Java EE 请求对象 Java EE 企业应用系统设计 HTTP 请求处理编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 17, 2018 大纲 HTTP 请求内容 Java EE 请求对象 学习目标 1. 理解 Web 的工作模式,掌握 HTTP 协议的特点以及 HTTP 请求中包含哪些信息。 2. 理解 Web 工作模式 Web 通常使用请求�响应模式。 ▶ 客户端(浏览器)向服务器发出 HTTP 请求,在 HTTP 请 求中包含传递到服务器的数据; ▶ Web 服务器接收到请求,对请求进行处理。 ▶ Web 服务器使用 HTTP 向客户端发送响应。 ▶ 客户端接收到响应后,进行显示或页面跳转。 大纲 HTTP 请求内容 Java EE 请求对象 HTTP 请求中包含的信息 HTTP Referer 浏览器是从哪个页面来的 Cookie 浏览器保存的 cookie 对象 Java EE Web 组件 Servlet 和 JSP 中可以使用请求对象的方法 读取这些请求内容,进而进行相应的处理。 大纲 HTTP 请求内容 Java EE 请求对象 HTTP 请求中包含的信息 O 请求体 每次 HTTP 请求时,在请求头之后会有一个空行,接下来是请 求中包含的提交数据,即请求体。0 码力 | 27 页 | 565.27 KB | 1 年前3
Java EE 企业应用系统开发 - HTTP 响应处理编程大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 Java EE 企业应用系统开发 HTTP 响应处理编程 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 17, 2018 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 学习目标 1. 掌握 HTTP 响应的内容,包括响应状态行、响应头、响应 体。 2 接下来⋯ HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 HTTP 响应的内容 在 Web 服务器接收请求处理后,向客户端发送 HTTP 响应 (Response)。 O 响应的内容 ▶ 响应状态(Status Code) ▶ 响应头(Response Header) ▶ 响应体(Response Body) 收到请求,没有处理完。 ▶ 2xx: 成功,响应完毕。 ▶ 3xx: 重定向,到另一个请求中去。 ▶ 4xx: 失败,没有请求的文档等。 ▶ 5xx: 内部错误,代码出现异常。 3. 状态描述。 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 响应头 Web 服务器在向客户端发送 HTTP 响应时也可以包含响应头, 来指示客户端浏览器如何处理响应体,主要包括响应的类型、字0 码力 | 26 页 | 575.28 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . 88 8.3 处理泛型类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.1 遍历泛型 Vector 集合 . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.3.2 泛型类型的处理方法 . . . . . . . 134 vii 11.2 GUI 事件处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.1 Java 事件和事件处理机制 . . . . . . . . . . . . . . . . . . . . . . . 134 11.2.2 事件处理相关概念 . . . . . . . . 2.7 事件适配器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.2.8 内部类和匿名类在 GUI 事件处理中的应用 . . . . . . . . . . . . . . 137 11.3 Applet . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛从如上代码可总结出身份验证的步骤: 1、收集用户身份/凭证,即如用户名/密码; 2、调用 Subject.login 进行登录,如果失败将得到相应的 AuthenticationException 异常,根 据异常提示用户错误信息;否则登录成功; 3、最后调用 Subject.logout 进行退出操作。 如上测试的几个问题: 1、用户名/密码硬编码在 ini 配置文件,以后需要改成如数据库存储,且密码需要加密存储; AuthenticationStrategy 进行多 Realm 身份验证; 5、Authenticator 会把相应的 token 传入 Realm,从 Realm 获取身份验证信息,如果没有返 回/抛出异常表示身份验证失败了。此处可以配置多个 Realm,将按照相应的顺序及策略进 行访问。 Realm Realm:域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 支持三种方式的授权: 编程式:通过写 if/else 授权代码块完成: 注解式:通过在执行的 Java 方法上放置相应的注解完成: 没有权限将抛出相应的异常; JSP/GSP 标签:在 JSP/GSP 页面通过相应的标签完成: 后续部分将详细介绍如何使用。 授权 基于角色的访问控制(隐式角色) 1、在 ini 配置文件0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译Manual 中文翻译 5 介紹 1. Introduction 介绍 What is Apache Shiro? Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验 证、授权、企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 currentUser.login(token); } 就是这样,不能再简单了。 但如果登录失败了呢,你可以捕获所有异常然后按你期望的方式去处理: try { currentUser.login( token ); //无异常,说明就是我们想要的! } catch ( UnknownAccountException uae ) { //username lae ) { //账号锁住了,不能登入。给个提示? } ... 更多类型异常 ... } catch ( AuthenticationException ae ) { //未考虑到的问题 - 错误? } 这里有许多不同类别的异常你可以检测到,也可以抛出你自己异常。详见 AuthenticationException JavaDoc 小贴士: 最好的方式0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版Documentation Introduction to Apache Shiro What is Apache Shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应 该尽可能掩盖复杂的地方,露出一个干净而直观的 让我像下面这样做: 这就是了!它再简单不过了。 但如果他们的登录尝试失败了会怎样?你能够捕获各种具体的异常来告诉你到底发生了什么,并允许你去处理并作 出相应反应: 你能够检查到许多不同类型的异常,或抛出你自己的自定义条件的异常——Shiro 可能不提供的。请参见 AuthenticationException JavaDoc 获取更多。 Handy 和它的内置对象图已经配置给一个应用程序,那么它单独 留下来,且应用程序开发人员几乎使用他们所有的时间来处理 Subject API。 我们稍后会更详细地讨论 SecurityManager,但重要的是要认识到,当你正与一个 Subject 进行交互时,实质上 是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。这反映在上面的基本流程图。 Realms:Realms0 码力 | 92 页 | 1.16 MB | 1 年前3
Nacos架构&原理
事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。 Eureka 协议的优点并加以优化而出 来的,对于原生的 Gossip,由于随机选取发送消息的节点,也就不可避免的存在消息重复发送给同 ⼀节点的情况,增加了网络的传输的压力,也给消息节点带来额外的处理负载,而 Distro 算法引入 了权威 Server 的概念,每个节点负责⼀部分数据以及将自己的数据同步给其他节点,有效的降低 了消息冗余的问题。 早期的 Nacos ⼀致性协议 我们先来看看早起的 服务注册发现以及配置管理,还是 需要依赖⼀致性协议的接口,在两个计算模块中耦合了带状态的接口;并且,虽然做了比较高度的 ⼀致性协议抽象,服务模块以及配置模块却依然还是要在自己的代码模块中去显示的处理⼀致性协 议的读写请求逻辑,以及需要自己去实现⼀个对接⼀致性协议的存储,这其实是不好的,服务发现 以及配置模块,更多应该专注于数据的使用以及计算,而非数据怎么存储、怎么保障数据⼀致性, 数据存0 码力 | 326 页 | 12.83 MB | 10 月前3
Java 应用与开发 - JSP (Java Server Page)降低了开发难度; ▶ 可以使用工具的拖拉方式生成 JSP 页面。 O 缺点 ▶ 非 OO 编程方式; ▶ Java 代码嵌入到 HTML 代码中,导致维护困难; ▶ 不适合编写规模比较大的业务处理应用程序。 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 JSP 的执行过程 �1��� ���� ��� ��1������� �1<�1< ��>� 版本的时间是 否一致,如果一致则执行 servlet 的处理请求方法,类似于 doGet 或 doPost,发送响应给浏览器; 4. 版本时间不一致,Web 服务器调用转换系统,将 JSP 的文 本代码转换为 Servlet 的 Java 代码; 5. 将 Java 代码编译为 class 文件; 6. 调用 Servlet Class 的相应方法处理请求并返回响应。 大纲 JSP 概述 JSP 指令 buffer=”9kb”。 ▶ errorPage=”errorURL”,指定错误页面地址,当页面出现异 常时自动跳转到指定的错误页面。 ▶ isErrorPage=”true|false”,指定本页面是否是错误处理页面。 ▶ autoFlush=”true | false”,控制输出缓冲区是否自动清空, 默认是 true。 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题0 码力 | 47 页 | 740.36 KB | 1 年前3
Java 应用与开发 - Java 内存模型与分配机制OutOfMemoryError 时该如何做? ▶ 常见的 OOM(Out Of Memory)内存溢出异常,就是堆内 存空间不足以存放新对象实例时导致。 ▶ 永久区内存溢出相对少见,一般是由于需要加载海量的 Class 数据,超过了非堆内存的容量导致。 ▶ 栈内存也会溢出,但是更加少见。 处理方法 调整 JVM 内存配置; 优化代码 堆内存优化 调整 JVM 启动参数 -Xms -Xmx OutOfMemoryError 时该如何做? ▶ 常见的 OOM(Out Of Memory)内存溢出异常,就是堆内 存空间不足以存放新对象实例时导致。 ▶ 永久区内存溢出相对少见,一般是由于需要加载海量的 Class 数据,超过了非堆内存的容量导致。 ▶ 栈内存也会溢出,但是更加少见。 处理方法 调整 JVM 内存配置; 优化代码 堆内存优化 调整 JVM 启动参数 -Xms -Xmx OutOfMemoryError 时该如何做? ▶ 常见的 OOM(Out Of Memory)内存溢出异常,就是堆内 存空间不足以存放新对象实例时导致。 ▶ 永久区内存溢出相对少见,一般是由于需要加载海量的 Class 数据,超过了非堆内存的容量导致。 ▶ 栈内存也会溢出,但是更加少见。 处理方法 调整 JVM 内存配置; 优化代码 堆内存优化 调整 JVM 启动参数 -Xms -Xmx0 码力 | 44 页 | 818.30 KB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













