黑马ee在职进阶视频

系列继续。 在初步概述和Arjan关于最重要的后端功能的文章之后 ,我现在非常高兴让Ed Burns( @edburns )使用他最喜欢的Java EE 7前端功能完成本系列。

感谢Markus Eisele让我有机会在他非常受欢迎的博客上发表帖子。 我和Markus的关系可以追溯到2010年左右,但我还没有来宾发布的乐趣。 Markus要求我介绍Java EE 7 Web层。 由于EE 7是非常成熟的平台的成熟版本,因此已经发布了很多有关它的信息。 我不会重述以前发生的事情,而是要就我认为重要的方面和每个方面的高级概述给出自己的看法。

如果您想了解更多有关第一手的知识,请考虑参加我在JavaLand 2016上的全日培训。我正在与现代金融和HTML5专家Oliver Szymanski一起进行培训。 有关详细信息,
请访问javaland网站 。

首先,从历史角度看。 Markus要求我写有关Java EE 7 Web层的文章。 让我们看一下这个术语,也称为“ Web层”或“表示层”。 如果要相信围绕微服务等新思想的炒作,该术语本身就听起来有点过时了,因为它暗示着一个三层体系结构,另外两层是“业务逻辑”,

“持久性”。 当然,三层还不够微观,对吧? 嗯,随着企业随着职责分配以寻求通过其软件实现最大业务价值的修补,这些层之间的界限变得越来越模糊。 无论如何,Java EE一直是Java平台的高度集成的企业技术集合,它使用基于共识的开放式开发实践(Java Community Process或JCP)进行了演进,并得到了主要利益相关者的实质性参与。 该平台的“ Web层”实际上只是在开发整体解决方案的“ Web层”时可能会有用的一组技术。 这是一个很大的清单:

  • WebSocket 1.0 JSR-356
  • JavaServer Faces 2.2 JSR-344
  • Servlet 3.1 JSR-340
  • JSON处理1.0 JSR-353
  • REST(JAX-RS)2.0 JSR 339
  • Bean验证1.1 JSR-349
  • 上下文和依赖注入1.1 JSR-346
  • Java 1.0 JSR-330的依赖项注入
  • Java EE 1.0 JSR-236的并发实用程序
  • 表达式语言3.0 JSR-341

出于本博客条目的目的,让我们看一下前五个:WebSocket,JSF,Servlet,JSON和JAX-RS。 虽然后五个无疑是专业网络层的必备要素,但查看它们超出了本博客条目的范围。

WebSocket

JSF和WebSocket是仅有的两个与W3C HTML5规范直接相关的Java EE 7规范。 对于WebSocket,实际上有三个不同的标准主体在起作用。 网络套接字WebSocket由IETF的RFC-6455指定。 WebSocket

W3C将JavaScript API指定为HTML5的子规范。 WebSocket Java API由JCP在JSR-356下指定。 在WebSocket的所有方面,重点是提供基于消息的可靠的全双工客户端-服务器连接。

通过JSR-356,您可以在Java SE和EE应用程序的客户端和服务器功能中使用WebSocket。

在服务器端,它允许您公开WebSocket终结点,以便浏览器可以使用其对WebSocket JavaScript API和网络协议的现有支持连接到该终结点。 您可以通过注释一些POJOS或通过从Java代码(例如从ServletContextListener)强制调用自举API来向系统声明端点。 建立连接后,服务器可以从/向发生的任何数量的客户端发送和接收消息

同时连接。 运行时将自动处理连接设置和拆除。

WebSocket Java客户端API通过提供与W3C JavaScript WebSocket API的Java类似物,允许Java SE应用程序与WebSocket端点(Java或其他)对话。

Java Server Faces(JSF)

在JSF 2.2中,我们添加了许多新功能,但在这里我仅介绍其中的三个。

HTML5友好标记使您能够以几乎纯净HTML(必须格式正确)编写JSF页面,而无需使用某些人认为笨拙且难以理解的XML名称空间。 这是可能的,因为基础HTML Basic JSF RenderKit(来自JSF 1.0)提供了所有必要的原语,以采用任意的映射约定。

相应的JSF UIComponent的一部分HTML标记。 例如,这是有效的JSF表单

<form jsf:id="form"><input jsf:id="name" type="tel" jsf:value="#{complex.name}" /><progress jsf:id="progress" max="3" value="#{complex.progress}" /></form>

唯一的问题是需要通过使用命名空间属性将元素标记为JSF组件。 这意味着您必须在<html>标记中至少声明一个名称空间:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"xmlns:jsf="http://xmlns.jcp.org/jsf">

Faces Flows是ADF Task Flows和Spring Web Flow中页面流概念的标准化。 流使您能够将具有某种逻辑连接并且需要共享状态的页面组合在一起。 流定义了一个逻辑作用域,该逻辑作用域在进入流时变为活动状态,并在退出流时可用于垃圾回收。 有丰富的语法可用于描述流程,如何输入,退出,如何相互关联,相互传递参数,

和更多。 由于在上下文和依赖注入(CDI)之上实现了流功能,因此提供了许多便利。 流可以打包为jar文件,并包含在您的Web应用程序中,从而实现Web应用程序各部分的模块化。

正如流程启用行为模块化一样,资源库合同(RLC)启用外观模块化。 RLC提供了一个非常灵活的蒙皮系统,该系统基于Facelets构建,并允许您将皮肤包装在jar文件中,从而有效地实现了模块化的外观。

Servlet

Servlet 3.1中最重要的新功能是对非阻塞IO的附加支持。 它基于Servlet 3.0(来自Java EE 6)的主要功能:async io。 React式编程的Swift兴起表明,Java应用程序再也无法承受阻塞IO的负担。 响应式编程的四个关注点:响应性,弹性,弹性和事件基础是在此前提下建立的。 在Servlet 3.1中非阻塞IO之前,很难避免在Servlet应用程序中阻塞。

基本思想是,在可以安全完成IO而不会阻塞的情况下,允许Servlet运行时回调应用程序。 这可以通过新的侦听器接口ReadListener和WriteListener来实现,它们的实例可以在ServletInputStream和ServletOutputStream上的方法中注册。

当您将此功能添加到Servlet 3.0中添加的async-io功能时,可以编写基于Servlet的应用程序,这些应用程序可以自豪地显示“ We Are Reactive”横幅。

JSON格式

从外部的角度来看,使用Java解析和生成JSON的能力当然并不是什么新鲜事物。 甚至在Java EE 7之前,都有许多解决方案可以满足这一基本需求。 遵循标准不是为了创新而是要在现有思想上赋予特殊地位的原则,Java EE 7中的JSON支持提供了使用简单的Java API解析和生成JSON的功能。 可以使用JsonParser以流方式进行读取,也可以使用JsonReader以批量方式进行读取。 可以使用JsonGenerator以流方式完成编写。 可以使用JsonBuilderFactory和JsonWriter以批量样式进行编写。

JAX-RS

很难夸大REST对面向非最终用户的软件的现代企业软件开发实践的重要性。 我要说的是,人们去Javadoc(或JSDoc或appledoc等)学习如何使用API​​的日子已经一去不复返了。 如今,如果您

企业API没有公开为RESTful Web服务,您甚至可能不会考虑。 JAX-RS是在Java中完成REST的方式。 自Java EE 6起,JAX-RS就成为Java EE的一部分,但在Java EE 7中得到了2.0的待遇。2.0中的主要功能包括:

  • 客户支持:我认为,此功能最有用的应用是使用JUnit对RESTful服务进行自动化测试,而不必依靠持续集成带来的麻烦。 当然,您也可以将其用于服务到服务的交互。
  • 与JSON的无缝集成:在大多数情况下,HTTP方法端点上的简单@Produces(“ application / json”)批注足以输出JSON。 JSON格式的数据也将以Java易于使用的格式自动提供给您。
  • 异步支持(再次处于活动状态):此功能使您能够执行生成对另一个线程的响应所需的处理,从而允许原始线程立即返回,因此不会发生阻塞。 异步线程准备就绪后可以自由响应。

自然,这只会刮擦Java EE 7 Web层的表面。 有关更多详细信息,一个不错的起点是正式的Java EE 7 启动网络研讨会 。

希望在JavaLand见到您!

谢谢Ed抽出宝贵时间写这篇文章。 如果现在还不是时候使用Java EE 7,那么下面是一些帮助您开始使用JBoss EAP 7和WildFly的资源:

  • EAP 7 Alpha和Java EE 7入门
  • 带有JBoss工具的OpenShift 3上的Java EE 7应用程序
  • GitHub上的Java EE 7示例
  • JBoss EAP 7快速入门

翻译自: https://www.javacodegeeks.com/2016/01/refresher-top-5-java-ee-7-frontend.html

黑马ee在职进阶视频

黑马ee在职进阶视频_进阶– Java EE 7前端5强相关推荐

  1. java ee的小程序_在Java EE应用程序中实现自动重试

    java ee的小程序 最初,我想将此博客称为" 具有拦截器驱动的重试策略的灵活超时 ",但后来我认为它太"繁重". 该声明以及修改后的标题应该(希望)使您了解 ...

  2. java ee的小程序_扩展Java EE应用程序的基础

    java ee的小程序 老实说,"可扩展性"是一个详尽的主题,并且通常没有被很好地理解. 通常,它被认为与高可用性相同. 我已经看到新手程序员和"经验丰富"的建 ...

  3. java ee 的使用方法_改善Java EE生产支持技能的8种方法

    java ee 的使用方法 参与Java EE生产支持的每个人都知道这项工作可能很困难. 7/24寻呼机支持,多个事件和错误修复(要定期处理),来自客户和管理团队的压力,要求它们尽快解决生产问题并防止 ...

  4. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  5. java ee6教程_《Java EE 6 企业级应用开发教程》怎么样_目录_pdf在线阅读 - 课课家教育...

    第1章 java EE概述 1.1 Java EE的产生与发展 1.2 Java EE 6架构 1.3 Java EE 6常用技术 1.4 Java EE 6特性 1.5 Java EE 6应用服务器 ...

  6. java ee各类组件_在Java EE组件中使用骆驼路线

    java ee各类组件 从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上使用它一直是一个挑战,我最近发表了一篇关于如何做到这一点的演讲,而在Java EE中引导Cam ...

  7. java ee maven_真正释放Maven和Java EE的强大功能

    java ee maven 如果野心和愿景太复杂而无法使用,则它们可能会淘汰伟大的解决方案. 尽管Maven和Java EE是在整个Java行业中都已建立的良好技术,但是使用它们并使用其作者打算使用的 ...

  8. Java EE 6 VS Spring 3:Java EE杀死了Spring? 没门!

    介绍 几天前,我在听Java Spotlight Podcast的第85集 . 在这次演讲中, Bert Ertman和Paul Bakker讨论了从Spring迁移到Java EE的问题. 基本上, ...

  9. Java EE 6 VS Spring 3:Java EE已经杀死了Spring? 没门!

    介绍 几天前,我在听Java Spotlight Podcast的插曲85 . 在这次演讲中, Bert Ertman和Paul Bakker讨论了从Spring迁移到Java EE. 基本上,在他们 ...

最新文章

  1. SpockFS —— 基于 HTTP 的文件系统
  2. 阿里云Windows服务器重启后无法远程桌面连接,大量注册表在检测
  3. 【Java Web后台实验与开发】The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one
  4. clickhouse官方文档_clickhouse分析:chproxy使用
  5. python能谢什么_python可以写什么啊
  6. C++ Primer 5th笔记(chap 16 模板和泛型编程)效率与灵活性
  7. 统计学---数据的标准化
  8. 蚂蚁金服井贤栋:区块链和人工智能是影响未来的关键技术
  9. python 简单trace 过滤处理
  10. SQL Server 2008 R2下载地址
  11. c++ 类与默认函数、包括构造函数和析构函数的特点
  12. lua语言实现阴阳师自动脚本(内含可运行程序)
  13. adb安装apk到智能TV上
  14. 基于stm32单片机srf04超声波传感器测距Proteus仿真
  15. Java多线程--1--stop方法
  16. java 给文件加密文件_java对文件做简单加密的方法
  17. 小白学习java集合框架(集合Collection)
  18. 通过简单的演示理解TCP/IP网络
  19. python tkinter手册_tkinter 中文文档
  20. 线搜索(line search)方法

热门文章

  1. CF1200D-White Lines【二维前缀和】
  2. jzoj4788-[NOIP2016提高A组模拟9.17]序列【差分,贪心】
  3. 【2018.3.31】模拟赛之四-ssl2408 句子【dp,字符串】
  4. K8S Learning(10)——Pod配置
  5. SpringCloud Greenwich(七)集成dubbo先启动消费者(check=false),然后启动提供者无法自动发现注册
  6. Java经典面试题一
  7. Java8学习笔记(1) -- 从函数式接口说起
  8. JAVA面试常考系列六
  9. java的for循环
  10. 使用加密工具类进行有效的字符串加密——CSDN博客