《Java 应用与开发》课程讲义 - 王晓东2010 Sun 公司被甲骨文公司收购。 Java 语言的版本迭代历程如图1.1所示。 1.1.2 Java 技术的特点 Java 具备以下技术特点: 面向对象 Java 是一种以对象为中心,以消息为驱动的面向对象的编程语言。 平台无关性 分为源代码级(需重新编译源代码,如 C/C++)和目标代码级 (Java) 平台 无关。 分布式 可支持分布式技术及平台开发。 可靠性 不支持直接操 句块的形参,这样我们就可以在语句块中操纵该异常对象了。主要使用异常类的父类 Throwable 中定义的两个成员方法: • public String getMessage() 返回描述当前异常的详细消息字符串; • public void printStackTrace() 用来跟踪异常事件发生时运行栈的内容,并将相关信 息输出到标准错误输出设备。本方法比较常用,在没有找到适合的异常处理代码 TestAssertion.main(TestAssertion.java:4) 说明 断言失败时,系统会自动将表达式 2 的值传递给新创建的 AssertionError 对象,进 而将其转换为一个消息字符串保存起来,这样就可以在获得更多/更有针对性的检查失 败细节信息。因此,其中的表达式 2 可以是任何基本数据类型或引用数据类型,但必 须提供一个值,即不能为空值。 . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛数过 多)、IncorrectCredentialsException (错误的凭证)、ExpiredCredentialsException(过期的 凭证)等,具体请查看其继承关系;对于页面的错误消息展示,最好使用如“用户名/密码 错误”而不是“用户名错误”/“密码错误”,防止一些恶意用户非法扫描帐号库; 2.6、最后可以调用 subject.logout 退出,其会自动委托给 SecurityManager 该 地址);failureKeyAttribute 指定登录失败时的 request 属性 key(默认 shiroLoginFailure); 这样可以在登录表单得到该错误 key 显示相应的错误消息; 3.2、web.xml 把 shiroConfigLocations 改为 shiro- formfilterlogin.ini 即可。 3.3、登录 Servlet iteye.com/ 71 在登录 Servlet 中通过 shiroLoginFailure 得到 authc 登录失败时的异常类型名,然后根据此 异常名来决定显示什么错误消息。 4、测试 输入 http://localhost:8080/chapter7/role,会跳转到“/formfilterlogin”登录表单,提交表单如 果 authc 拦截器登录成功0 码力 | 219 页 | 4.16 MB | 10 月前3
Java 应用与开发 - Java EE 体系结构服务规范 Java EE 规定了连接各种外部资源的标准接口 API,简化了 连接各种不同类型外部资源的设计和编程。如 JDBC API 提供了连接数据库的标准接口;JMS API 可以连接各种外 部的消息服务系统。 ▶ 通信协议规范 ▶ 开发角色规范 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 Java EE 规范 Java EE 规范定义了面向 服 务,并管理组件的生成、调用和销毁整个生命周期。 ▶ 在 Java EE 规范下,所有 Java EE 组件都由容器来创建和 销毁。 O 容器的优势 ▶ 简化了企业级软件开发中复杂的对象管理事务; ▶ 克服了 C++ 语言等内存泄漏缺陷; ▶ 减轻软件开发人员的负担。 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 Java EE0 码力 | 40 页 | 1.89 MB | 1 年前3
Nacos架构&原理
协议的优点并加以优化而出 来的,对于原生的 Gossip,由于随机选取发送消息的节点,也就不可避免的存在消息重复发送给同 ⼀节点的情况,增加了网络的传输的压力,也给消息节点带来额外的处理负载,而 Distro 算法引入 了权威 Server 的概念,每个节点负责⼀部分数据以及将自己的数据同步给其他节点,有效的降低 了消息冗余的问题。 早期的 Nacos ⼀致性协议 我们先来看看早起的 Naocs 接 断开时,需要进行切换 Server 进行重连。 ○ 客户端基于当前可用的长链接进行配置的查询,发布,删除,监听,取消监听等配置领域的 R PC 语意接口通信。 ○ 感知配置变更消息,需要将配置变更消息通知推送当前监听的客户端;网络不稳定时,客户端 接收失败,需要支持重推,并告警。 ○ 感知客户端连接断开事件,将连接注销,并且清空连接对应的上下文,比如监听信息上下文清 理。 Server 连接生命周期实时感知能力,包括连接建立,连接断开事件。 客户端调用服务端支持同步阻塞,异步 Future,异步 CallBack 三种模式。 底层连接自动切换能力。 响应服务端连接重置消息进行连接切换。 选址/服务发现。 服务端 连接生命周期实时感知能力,包括连接建立,连接断开事件。 服务端往客户端主动进行数据推送,需要客户端进行 Ack 返回以支持可靠推送,并且需要进行失0 码力 | 326 页 | 12.83 MB | 9 月前3
Java EE 企业应用系统开发 - HTTP 响应处理编程响应体(Response Body) 大纲 HTTP 响应的内容 HTTP 响应对象 响应对象功能和方法 HTTP 响应状态行 表明响应的状态信息,如成功、失败、错误。 状态行组成:版本 / 状态代码 / 状态消息。 O 状态行例子 HTTP/1.1 200 ok 1. 版本:使用的 HTTP 协议版本,如 HTTP/1.1; 2. 状态代码:3 位数字; ▶ 1xx: 收到请求,没有处理完。 ▶ 2xx: 服务器会自动设置状态码为 404,状态消息为 not found。 O public void setStatus(int code) 直接发送指定的响应状态码,没有设置状态消息,只有默认的状 态消息,如果无对应状态消息则显示为空。 O public void setStatus(int code, String message) 设置指定的状态码,同时设定自定义的状态消息,可以修改默认 的状态消息。该方法在 Servlet sendError(580); O public void sendError(int sc, String msg) throws IOException 向客户端发送指定的错误信息码和自定义状态消息。 1 response.setCharacterEncoding("GBK"); 2 response.sendError(580, "自定义错误"); 大纲 HTTP 响应的内容 HTTP0 码力 | 26 页 | 575.28 KB | 1 年前3
Apache Shiro参考手册中文版就在我们的简单应用程序中启用了!很容易是吧? 轻松地运行 mvn compile exec:java,并看到这一切仍然运行成功(由于 Shiro 的默认调试日志或更低版本,你将不会 看到任何的 Shiro 日志消息——如果在启动和运行没有报错,那么你知道一切仍然正常)。 这里是上面增加的代码所做的: 1. 我们使用 Shiro 的 IniSecurityManager 实现来提取我们的 shiro Shiro 可能不提供的。请参见 AuthenticationException JavaDoc 获取更多。 Handy Hint 最安全的做法是给普通的登录失败消息给用户,因为你当然不想帮助试图闯入你系统的攻击者。 好了,到现在为止,我们已经有了一个登录用户。我们还能做些什么? 比方说,他们是是谁: 我们也可以测试他们是否有特定的角色: AuthenticationExceptions 来代表具体的异常情况。 Login Failure Tip 虽然你的代码可以以特定的异常作出反应,并执行必要的逻 辑,最安全的做法是只显示通用的失败消息给终端用户,例如, “错误的用户名或密码。”。这样将确保具体的信息提供给黑 客可能试图攻击的媒介。 Remembered vs. Authenticated(记住我对比认证) 如上面的例子所示,Shiro0 码力 | 92 页 | 1.16 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译isAuthenticated())。这通常发生在一个Subject 登录后或当一个 Subject 的身份 ID 通过Remember 服务被发现后。 这个默认的方法有几个好处: 任何服务于请求,调用或消息的应用程序可以用请求/调用/消息的有效载荷关联会话ID, 且这是Shiro 用入站 请求关联用户所有所必须的。例如,如果使用Subject.Builder,这是 需要获取相关的Subject 所需的一切: Serializable buildSubject(); Apache Shiro 1.2.x Reference Manual 中文翻译 86 8. Session Management 这给大多数Web 应用程序及任何编写远程处理或消息框架的人带来了令人难以置信的方便 (这事实上是Shiro 的Web 支持在自己的框架代码内关联Subject 和ServletRequest)。 任何"RememberMe"身份基于一个能够在第一次访问就能持久化到会话的初始请求。这 但这一要求带来一个便利的代价—— Subject 状态不能跨请求保留。这意味着有这一要求的应 用程序必须确保 Subject 状态可以在每一个请求中以其他的方式代表。 这几乎总是通过验证每个由应用程序处理的请求/调用/消息来完成的。例如,大多数无状态 Web 应用程序通常支持这一点通过执行 HTTP 基本验证,允许浏览器验证每一个代表最终用 户的请求 Disabling Subject State Session0 码力 | 196 页 | 2.34 MB | 1 年前3
Java 应用与开发 - 异常处理发生异常时,系统将自动创建异常类对象,并将作为实参传递给 匹配的 catch 语句块的形参,这样就可以在语句块中操纵该异常 对象。 O 异常类的父类 Throwable 中定义的方法 getMessage() 返回描述当前异常的详细消息字符串。 printStackTrace() 用来跟踪异常事件发生时运行栈的内容,并 将相关信息输出到标准错误输出设备。本方法比较 常用,在没有找到适合的异常处理代码时,系统也 会自动调用该方法输出错误信息。 发生异常时,系统将自动创建异常类对象,并将作为实参传递给 匹配的 catch 语句块的形参,这样就可以在语句块中操纵该异常 对象。 O 异常类的父类 Throwable 中定义的方法 getMessage() 返回描述当前异常的详细消息字符串。 printStackTrace() 用来跟踪异常事件发生时运行栈的内容,并 将相关信息输出到标准错误输出设备。本方法比较 常用,在没有找到适合的异常处理代码时,系统也 会自动调用该方法输出错误信息。0 码力 | 33 页 | 626.40 KB | 1 年前3
Java 应用与开发 - Java 技术概述及开发环境Optional�Class 2014.3.19 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 技术的特点 面向对象 Java 是一种以对象为中心,以消息为驱动的面向对 象的编程语言。 平台无关性 分布式 可靠性 多线程 网络编程 编译和解释并存 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程0 码力 | 33 页 | 1.17 MB | 1 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 02String errorCode) void rejectValue(String field, String errorCode, String defaultMessage) Errors 对象中的错误消息,可以利用表单标签库的 Errors 标签显 示在 HTML 页面中。 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ValidationUtils0 码力 | 56 页 | 866.07 KB | 1 年前3
共 11 条
- 1
- 2













