java服务器下载文件-java下载xml文件
点击上图,查看教学大纲
何为 Java EE
Java EE是一个标准中间件体系结构
不要被名称”Java PlatformEnterprise Edition”误导,与Java不同,Java EE是一种体系结构,而不是一门编程语言。Java是一门编程语言,可以用来编写各种应用程序。Java EE是一个标准中间件体系结构,旨在简化和规范分布式多层企业应用系统的开发和部署。
Java EE出现之前,分布式多层企业应用系统的开发和部署没有一个被普遍认可的行业标准,几家主要的中间件开发商的产品各自为政,彼此之间缺乏兼容性,可移植性差,难以实现互操作。Java EE的出现,规范了分布式多层体系的应用开发。Java EE将企业应用程序划分为多个不同的层,并在每一个层上定义对应的组件来实现它。典型的Java EE结构的应用程序包括四层:客户层、表示逻辑层(Web层)、业务逻辑层和企业信息系统层,如图1-3所示。
客户层可以是网络浏览器或者是桌面应用程序。
表示逻辑层(Web层)、业务逻辑层都位于应用服务器上,它们都是由一些Java EE标准组件JSP(Java Server Page)、Servlet、EJB(EnterpriseJavaBeans)和Entity等来实现,这些组件运行在实现了Java EE标准的应用服务器上,以实现特定的表现逻辑和业务逻辑。
企业信息系统层主要用于企业信息的存储管理,主要包括数据库系统、电子邮件系统、目录服务系统等。Java EE 应用程序组件经常需要访问企业信息系统层来获取所需的数据信息。
Java EE出现之前,企业应用系统的开发和部署没有被普遍认可的行业标准。Java EE体系架构的实施可显著地提高企业应用系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。
Java EE是企业分布式应用开发标准集
Java EE不但定义了企业级应用的架构体系,还在此基础上定义了企业级应用的开发标准。作为一个企业级应用开发标准集合,Java EE主要包含以下内容。
(1)Java EE规范了企业级应用组件的开发标准。Java EE定义的组件类型有Servlet、EJB、Websocket等。Java EE标准规定了这些组件应该实现哪些接口方法。开发人员需要根据这些标准来开发相应的应用组件。
(2)Java EE规范了容器提供的服务标准。组件的运行环境称为容器,容器通过提供标准服务来支持组件的运行。不同的组件由不同的容器来支撑运行。如JSP组件和Servlet运行在Web容器中,EJB组件运行在EJB容器中。在Java EE规范中,容器实现的标准服务有安全、事务管理、上下文和依赖注入、校验和远程连接等。各容器厂商需要根据服务标准来开发相应的容器产品。
(3)Java EE 规范了企业信息系统的架构标准。为规范大型企业应用系统设计中导航控制、数据校验、数据持久化等共性问题,Java EE 提出了JSF和JPA等架构,帮助程序设计人员加速应用开发进度和质量。
Java标准制定组织(Java CommunityProcess,JCP)领导着Java EE规范和标准的制定,开发人员可以从网址下载最新的Java EE 8规范。截至2017年10月,最新的Java EE 8规范包含了32个具体的标准。
需要强调的是,Java EE规范只是一个标准集,它不定义组件和容器的具体实现。容器由第三方厂商如Oracle、IBM来实现,通常被称为应用服务器。而组件由开发人员根据具体的业务需求来实现,各种不同类型的组件部署在容器里,最终构成了Java EE企业应用系统。
尽管不同的厂家有不同的容器产品实现,但它们都遵循同一个Java EE规范。因此遵循Java EE标准的组件,可以自由部署在这些由不同厂商生产、但相互兼容的Java EE容器环境内。企业级系统的开发由此变得简单高效。
说明:随着Java EE 版本的升级,它所包含的技术规范越来越多。为了降低容器厂商支持Java EE规范的难度,Java EE提出了Profile的概念。Profile是针对特定应用领域的一个技术规范子集,它剪切掉一些很少使用的技术,使得Java EE变得更加简洁,也便于开发商实现。目前Java EE规范中支持的惟一一个Profile是Web Profile,它用来专门支持企业Web应用的开发。例如Apache Tomcat就是仅仅实现了Web Profile的应用服务器。
Java EE编程思想
Java EE为满足开发多层体系结构的企业级应用的需求,提出”组件-容器”的编程思想。Java EE应用的基本软件单元是Java EE组件。所有的Java EE组件都运行在特定的运行环境之中。组件的运行环境被称为容器。Java EE组件分为Web 组件和EJB组件,相应地,Java EE容器也分为Web容器和EJB容器。
容器为组件提供必需的底层基础功能,容器提供的底层基础功能被称为服务。组件通过调用容器提供的标准服务来与外界交互。为满足企业级应用灵活部署,组件与容器之间必须既松散耦合,又能够高效交互。为实现这一点,组件与容器都要遵循一个标准规范。这个标准规范就是Java EE。
Java EE容器由专门的厂商来实现,容器必须实现的基本接口和功能由Java EE规范定义,但具体如何实现完全由容器厂商自己决定。常见的Java EE服务器中都包含了Web容器或EJB容器的实现。组件一般由程序员根据特定的业务需求编程实现。
所有的Java EE组件都是在容器的Java虚拟机中进行初始化的,组件通过调用容器提供的标准服务来与外界交互。容器提供的标准服务有:命名服务、数据库连接、持久化、Java消息服务、事务支持、安全服务等。因此在分布式组件的开发过程中,完全可以不考虑复杂多变的分布式计算环境,而专注于业务逻辑的实现,这样可大大提高了组件开发的效率java服务器下载文件,降低开发企业级应用程序的难度。
那么组件与容器之间是如何实现交互的呢?即容器如何知道要为组件提供何种服务,组件又是如何来获取容器提供的服务呢?Java EE采用部署描述文件来解决这一难题。每个发布到服务器上的应用除了要包含自身实现的代码文件外,还要包括一个XML文件,称为部署描述文件。部署描述文件中详细地描述了应用中的组件所要调用的容器服务的名称、参数等等。部署描述文件就像组件与容器间达成的一个”契约”,容器根据部署描述文件的内容为组件提供服务,组件根据部署文件中的内容来调用容器提供的服务。
从上面的介绍中开发人员可以感觉,部署描述文件的配置是Java EE开发中的一项重要而又繁琐的工作。值得庆幸的是,自Java EE 5 规范推出以来,Java EE支持在组件的实现代码中引入注解来取代配置复杂的部署描述文件。所谓的注解是JDK 5版本后支持的一种功能机制,它支持在Java 组件的源代码中嵌入元数据信息,在部署或运行时应用服务器将根据这些元数据对组件进行相应的部署配置。关于注解,后面的章节中还会详细论述。容器在组件部署时通过提取注解信息来决定如何为组件提供服务。注解的出现大大简化了Java EE 应用程序的开发和部署,是Java EE规范的一项重大进步。
更值得一提的是,从Java EE 6规范开始,还引入了一种”惯例优于配置”或者称为”仅异常才配置” 的思想。通俗一点讲,就是对于Java EE组件的一些属性和行为,容器将按照一些约定俗成的惯例来自动进行配置,此时开发人员甚至连注解都可以省略。只有当组件的属性和行为不同于惯例时,才需要进行配置。这种编程方式大大降低了程序人员的工作量java服务器下载文件,也是需要开发人员逐渐熟悉和适应的一种编程技巧。
Java EE技术框架
作为一个企业分布式应用开发标准集,Java EE由一系列的企业应用开发技术来最终实现。Java EE技术框架可以分为4部分:组件技术、服务技术、通信技术和架构技术。整个Java EE技术框架体系如图1-4所示。
组件技术
组件是Java EE应用的基本单元。Java EE 8提供的组件主要包括三类:客户端组件、Web组件和业务组件。
1. 客户端组件
Java EE 客户端既可以是一个Web浏览器、一个Applet,也可以是一个应用程序。
(1) Web 浏览器
Web 浏览器又称为瘦客户。它通常只进行简单的人机交互,不执行如查询数据库、业务逻辑计算等复杂操作。
(2) Applet
Applet是一个用Java语言编写的小程序,运行在浏览器上的虚拟机里,通过HTTP等协议和服务器进行通信。
(3) 应用程序客户端
Java EE应用程序客户端运行在客户端机器上,它为用户处理任务提供了比标记语言丰富的接口。典型的Java EE应用程序客户端拥有通过Swing或AWT API建立的图形用户界面。应用程序客户端直接访问服务器在EJB容器内的EJB组件。当然,Java EE客户应用程序也可像Applet客户那样通过HTTP连接与服务器的Servlet通信。与Applet不同的是,应用程序客户端一般需要在客户端进行安装,而Applet是通过Web下载,无须专门安装。
2. Web组件
Web组件是在Java EE Web容器上运行的软件程序。它的功能是基于HTTP协议对Web请求进行响应。这些所谓响应其实是动态生成的网页。用户每次在浏览器上单击一个链接或图标,实际上是通过HTTP请求向服务器发出请求。Web服务器负责将Web请求传递给Web 组件。Java EE平台的Web组件对这些请求进行处理后生成动态内容再通过Web容器返回给客户端。
Java EE Web组件包括Servlet、JSP和WebSocket。
Servlet是Web容器里的程序组件。Servlet实质上是动态处理HTTP请求和生成网页的Java类。
JSP是Servlet的变形,它像是文本格式的Servlet,它的写法有些像写网页,这样就为应用开发者(特别是不熟悉Java语言的)提供了方便,JSP在Web容器内会被自动编译为Servlet,编写JSP比编写Servlet程序更简洁。
WebSocket用来实现客户端与服务器之间基于连接的交互。
3. 业务组件
业务组件指运行在图1-3所示的业务逻辑层的组件,它们主要完成业务逻辑处理功能。业务组件包含EJB组件和Entity组件两大类。EJB组件用于实现特定的应用逻辑,而不是像Web组件一样负责处理客户端请求并生成适应客户端格式要求的动态响应。EJB组件能够从客户端或Web容器中接收数据并将处理过的数据传送到企业信息系统来存储。由于EJB依赖Java EE容器进行底层操作,使用EJB组件编写的程序具有良好的扩展性和安全性。
Java EE支持两种类型的EJB组件:Session Bean(会话Bean)和Message-DrivenBean(消息驱动Bean)。
Entity组件主要用来完成应用数据的持久化操作。
主要内容
本书基于Java EE 8编程技术进行系统介绍。本书首先对Java EE体系结构进行概述,介绍Java EE的定义、设计思想,技术框架等,然后详细指导读者如何基于Netbeans+MySQL来搭建Java EE开发环境,随后以企业应用开发流程为主线对Java EE编程技术进行了系统介绍。
本书最后以一个完整信息系统的开发为示例,从系统的需求分析开始,到规划、框架设计、编码、再到部署发布,一步步引导读者完成一个完整系统的开发,向读者展示灵活运用Java EE技术构建完整信息系统的基本技巧。