《Java 应用与开发》课程讲义 - 王晓东应用与开发课程的教学体系如图1所示,包括了 Java SE 和 Java EE 两个部分, 每部分都涉及一些验证性实验,另外,会开展两次稍微大一点的集成开发项目。同时, 在学习的过程中会穿插一些开发工具、设计模式、应用服务器和数据库的基本应用。 在课程学习的过程中,希望同学们要有足够的求知欲,养成良好的学习态度,具 备不断探索的精神,多尝新、多实践、多总结。我想这是计算机专业人士应该具备的 基本素养。 1 � 0 � 跨平台编程技术受到追捧 Sun在SunWorld'95宣布Java技术诞生,发布HotJava浏览器。 一次编写、随处运行 Sun发布Java的第1版。并开始提供和维护完备的Java开发工具集和代码库。 Java JDK JRE Java1 Java1.1 Java1.2 Java2 J2SE J2ME J2EE 标准版,开发适用于PC上运行的程序 微缩版,开发适用于手机等嵌入式设备的程序 19 图 1.1 Java 版本迭代 多线程 C++ 没有内置的多线程机制,需调用操作系统的多线程功能来进行多线程序设 计;Java 提供了多线程支持。 网络编程 Java 具有丰富的网络编程库。 编译和解释并存 由编译器将 Java 源程序编译成字节码文件,再由运行系统解释执行 字节码文件(解释器将字节码再翻译成二进制码运行)。 1.2 Java 平台核心机制 Java 技术栈如图10 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以 跟我学 数据放到 Memcached 服务器); SessionDAO:DAO 大家都用过,数据访问对象,用于会话的 CRUD,比如我们想把 Session 保存到数据库,那么可以实现自己的 SessionDAO,通过如 JDBC 写到数据库;比如想把 Session 放到 Memcached 中,可以实现自己的 Memcached SessionDAO;另外 SessionDAO 中可以使用 Cache (错误的凭证)、ExpiredCredentialsException(过期的 凭证)等,具体请查看其继承关系;对于页面的错误消息展示,最好使用如“用户名/密码 错误”而不是“用户名错误”/“密码错误”,防止一些恶意用户非法扫描帐号库; 2.6、最后可以调用 subject.logout 退出,其会自动委托给 SecurityManager.logout 方法退出。 从如上代码可总结出身份验证的步骤: 1、收集用户身份/凭证,即如用户名/密码;0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译帮助你熟悉 Shiro 的设 计和 API。 当你跟随本教程时,如果你不想编辑文件,您可以获得一个几乎相同的示例作为参考。 选择一 个地址: 在Apache Shiro 的 Subversion 存储库: https://svn.apache.org/repos/asf/shiro/trunk/samples/quickstart/ 在Apache Shiro 的源码发布 samples/quickstart goodguy = winnebago:drive:eagle5 可以看到,在该配置文件中最基础地配置了几个静态的帐户,对我们这一个程序已经足够 了,在以后的章节中,将会看到如何使用更复杂的用户数据比如数据库、LDAP 和活动目录 等。 Referencing the Configuration 引用配置 现在我们已经定义了一个 INI 文件,我们可以在我们的示例程序中创建SecurityManager } //Subject 确保是一个已知的身份 ... } JSP TagLib Authorization 标签库授权 Shiro 提供了一个标签库来控制 JSP/GSP 页面输出,这将在 Web 文档中的 JSP/GSP 标签库 中讨论 Authorization Sequence 授权序列 现在我们已经看到如何对当前 Subject 执行授权,让我们了解一下当一个授权命令调用时0 码力 | 196 页 | 2.34 MB | 1 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 01MVC 模式示例 Spring MVC 数据绑定和表单标签库 基于 Java EE 的企业应用系统设计 Spring MVC 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 December 22, 2017 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 References 1. Spring MVC: A Spring MVC 数据绑定和表单标签库 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 ��来� Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 大纲 Java Web 应用的开发演化 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 JSP 在 HTML 代码里写 Java 代码完成业务逻辑。 <% String name = request.getParameter("name"); String password = request.getParameter("password"); UserHandler userHandler0 码力 | 67 页 | 792.43 KB | 1 年前3
Java 应用与开发 - MVC 和框架初步知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。0 码力 | 51 页 | 837.26 KB | 1 年前3
Linux Docker MessArchitecture Applications 标准的Linux系统(Linux发行版)一般都有一套称为应用程序集,它包括文本 编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。 知乎:Vim 和 Emacs 到底哪个更牛逼一点? http://www.zhihu.com/question/20846396 n Vim n Emacs Linux启动脚本风格 n lxc-ubuntu-cloud lxc-archlinux lxc-cirros lxc-fedora lxc-opensuse lxc-sshd 创建某个特定目标环境的LXC容器需要 相应的LXC模板,Ubuntu上的LXC用户空 间工具随带一系列预先准备好的LXC模 板在/usr/share/lxc/templates目录下 sudo lxc-create –n lxc –t ubuntu0 码力 | 77 页 | 7.40 MB | 1 年前3
Nacos架构&原理
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。 Namespace 的常用场景之⼀是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源 (如数据库配置、限流阈值、降级开关)隔离等。如果在没有指定 Namespace 的情况下,默认使 用 public 命名空间。 配置组(Group) Nacos 中的⼀组配置集,是配置的维度之⼀。通过⼀个有意义的字符串(如 Nacos 或者以集群模式启动 Nacos。而 Nacos 是⼀个需要 存储数据的⼀个组件,因此,为了实现这个目标,就需要在 Nacos 内部实现数据存储。单机下其 实问题不大,简单的内嵌关系型数据库即可;但是集群模式下,就需要考虑如何保障各个节点之间 的数据⼀致性以及数据同步,而要解决这个问题,就不得不引入共识算法,通过算法来保障各个节 点之间的数据的⼀致性。 为什么 Nacos 选择了 Raft ,因为客户端不会上报心跳, 那么自然就不能去自动摘除下线的实例。 67 > Nacos 架构 图 4 临时实例和持久化实例 在大中型的公司里,这两种类型的服务往往都有。⼀些基础的组件例如数据库、缓存等,这些往往 不能上报心跳,这种类型的服务在注册时,就需要作为持久化实例注册。而上层的业务服务,例如 微服务或者 Dubbo 服务,服务的 Provider 端支持添加汇报心跳的逻辑,此时就可以使用动态服0 码力 | 326 页 | 12.83 MB | 9 月前3
JAVA 应用与开发 - 高级类特性抽象类是对类的抽象(可以抽象但不宜实例化),而接口是对行 为的抽象。 抽象类是对类整体进行抽象,包括属性、行为,但是接口却是 对类局部(行为)进行抽象。 抽象类作为很多子类的父类,它是一种模板式设计。模板式设 计:模板代表公共部分,公共部分需要改的则改动模板即可。 而接口是一种行为规范,它是一种辐射式设计。辐射式设计: 接口进行了变更,则所有实现类都必须进行相应的改动。 16 29 ������� 抽象类是对类的 抽象类是对类的抽象(可以抽象但不宜实例化),而接口是对行 为的抽象。 抽象类是对类整体进行抽象,包括属性、行为,但是接口却是 对类局部(行为)进行抽象。 抽象类作为很多子类的父类,它是一种模板式设计。模板式设 计:模板代表公共部分,公共部分需要改的则改动模板即可。 而接口是一种行为规范,它是一种辐射式设计。辐射式设计: 接口进行了变更,则所有实现类都必须进行相应的改动。 16 29 �������������������0 码力 | 61 页 | 677.55 KB | 1 年前3
Java 应用与开发 - 面向对象编程进阶涉及怎样合理的设计对象之间的交互通信,以及合理 为对象分配职责,让设计富有弹性、易维护、易复用。 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、 备忘录模式、观察者模式、状态模式、策略模式、模板方法模式 和访问者模式 结构型模式 涉及如何组合类和对象以形成更大的结构,和类有关 的结构型模式涉及如何合理使用继承机制,和对象有关的结构型 模式涉及如何合理的使用对象组合机制。 适配器模式、组合 涉及怎样合理的设计对象之间的交互通信,以及合理 为对象分配职责,让设计富有弹性、易维护、易复用。 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、 备忘录模式、观察者模式、状态模式、策略模式、模板方法模式 和访问者模式 结构型模式 涉及如何组合类和对象以形成更大的结构,和类有关 的结构型模式涉及如何合理使用继承机制,和对象有关的结构型 模式涉及如何合理的使用对象组合机制。 适配器模式、组合 涉及怎样合理的设计对象之间的交互通信,以及合理 为对象分配职责,让设计富有弹性、易维护、易复用。 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、 备忘录模式、观察者模式、状态模式、策略模式、模板方法模式 和访问者模式 结构型模式 涉及如何组合类和对象以形成更大的结构,和类有关 的结构型模式涉及如何合理使用继承机制,和对象有关的结构型 模式涉及如何合理的使用对象组合机制。 适配器模式、组合0 码力 | 49 页 | 659.74 KB | 1 年前3
使用 TEX 写文档want to write an article in \LaTeX{}. \end{document} \documentclass{article} \usepackage{aas} % 自动化学报模板; \usepackage{CJK} \begin{document} \begin{CJK*}{GBK}{song} %"song" 是你已安装的字体; 现在我要开始用 ~\LaTeX{}~ 写 文章了。0 码力 | 65 页 | 1.07 MB | 1 年前3
共 34 条
- 1
- 2
- 3
- 4













