JavaEE1.JavaEE平台概述(重要)JavaEE(JavaPlatform,EnterpriseEdition)是sun公司推出的企业级应用程序版本。这个版本以前称为J2EE。能够为我们帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序。2.使用分布式的多层应用模型构件,多层分哪些层?J2EE可以分为4层:1、运行在客户端机器上的客户端组件2、运行在J2EE服务器上的Web层组件.3、运行在j2EE服务器上的业务逻辑层组件.4、运行在EIS服务器上的企业信息系统层软件.一般,J2EE应用程序被认为是三层体系结构的,因为它们主要分布在三个地方.客户端,服务器端,数据库或者是后台的遗留层.3.JavaEE应用由各种各不同组件构成,都有哪些组件网上答案:J2EE的规范定义了下面的一些组件:1、客户端程序和applets是运行在客户端的组件.2、javaservlet和jsp技术是运行在服务器端的服务器组件.3、EJB技术是运行在服务器端的商务逻辑组件.PPT答案:1、J2EEClientsWebClient;Applets;ApplicationClient;JavaBean组件(theJavabeanComponentArchitecture);2、WebComponentServlet;Webpage(JSP)3、businessComponentEJB(会话bean实体bean消息驱动bean);javaee组件和标准类的区别javaEE的组件与其他标准Java类的区别在于,JavaEE组件将装配至一个JavaEE应用中并通过验证,以确保其满足JavaEE规范要求,从而可以部署至生产环境中。生产环境是一个JavaEE服务器并管理JavaEE组件的地方容器的概念容器是组件与底层平台功能间的接口。在Web组件、企业bean或应用程序客户端运行之前,必须将其装配至JavaEE模块,并部署至其容器中为什么要用容器通常情况下,开发人员需要引入复杂的代码解决事务及状态管理问题,多处理线程和资源轮询等复杂的底层细节,因此瘦客户端多层应用程序不易编写。而在JavaEE架构下,由于业务逻辑被封装至可重用的组件之中,基于组件和平台独立的架构特性使得上述问题得以缓解。除此之外,JavaEE服务器为每一种组件都提供了基于容器的底层服务,因此开发人员无需自行开发这些服务,可以轻松地将注意力集中在解决业务问题上4.JavaEE应用服务器是以容器的形式提供服务,容器分哪些类型?分别提供了哪些服务?1、EJBcontainer:管理J2EE程序的执行2、Webcontainer:管理网页,servlet和部分EJB程序的执行3、ApplicationClientcontainer:管理客户端组件应用的执行4、Appletscontainer:管理applets的执行5.JavaEE应用最后会被打包部署的,打包部署的文件包括哪些内容?1.一个或者是多个功能化的组件,例如EJB,webPage,servlet或者是applet2.可以描述部署内容的部署描述文件*6.JavaEE应用模块有哪些类型?模块被打包后拓展名是什么?各个模块的内容分别包括什么?web模块,*.war,包括servlet类文件,JSP页面文件,支持类文件,GIF和html文件,XML配置文件ejb模块,*.jar,包括ejb文件,ejb配置文件applicationclient模块,*.jar,包括相关类文件,程序客户端配置文件resourceadapter模块,*.rar,包括所有的java接口,类,本地库和文档和资源适配描述文件7.JavaEE应用可重用模型,哪些角色?TheJavaEEproductproviderThetoolproviderApplicationComponentProviderApplicationAssemblerApplicaionDeployerandAdministrator8.JavaEE应用哪些广泛使用的EJB、web容器?EJB技术:Servlet技术,JSF,JSP,JavaPersistentAPI(JPA),JavaTransactionAPI(JTA),JAX-RS,ManagedBeans,CDI,DependencyInjection,BeanValidation,JMS,JavaEEconnectorArchitecture,JMailAPI,有哪些广泛使用的轻型框架,开发工具,服务器1、轻型框架Struts:基于MVC设计模式的Web框架——表示层Spring:轻量级的JAVAEE应用程序框架——应用层Hibernate:ORM工具——持久层2、开发工具Eclipse:可扩展的免费开放源代码IDENetBeans:开放源码的Java集成开发环境3、服务器Web服务器:Tomcat,ResinEJB容器:JBoss应用服务器:IBMWebsphere,OracleWebLogic应用服务器的负载均衡将用户发来的请求,恰当地分配给各个应用服务器,无需对应用进行任何修改---可扩展性Web应用servletweb开发基础1.Web应用是Web应用服务器的动态拓展,哪两种类型?面向服务的和面向表现的两种类型2.一个JavaWeb应用的请求处理流程。1、客户端向Web服务器发送一个HTTP请求2、实现了JavaServlet和JavaServerPages技术的服务器将请求转换为一个HTTPServletRequest对象3、这个对象被投递到一个Web组件,这个组件可以与JavaBeans组件或者一个数据库相互协作生成一个动态内容(dynamiccontent)4、这个组件可以生成一个HTTPServletResponse或者将这个请求转交给其他Web组件5、Web组件最终生成一个HttpServletResponse对象6、Web服务器将这个对象转换成HTTP应答消息返回给客户端使用servlet和jsp的区别1、Servlet最适用于面向服务的应用(Web服务终端可以被实现为Servlet)或者面向表现应用中的控制功能模块,比如分发请求或者非文本数据2、JSF(JavaServerFacesandFaceletspages)更适用于生成基于文本的标记,比如XHTML,多用于面向表现的Web应用部署到web容器,容器提供了哪些服务requestdispatching(请求分发),security(安全),concurrency(并发),andlifecyclemanagement(生命周期管理)Web容器同时也为Web组件提供了获取命名、事务、邮件(naming,transactions,andemail)的API的方式3.一个Web应用会包括哪些内容?Web组件、web资源、帮助类库(Helperclassesandlibraries)服务器端实用工具类(utilityclasses,例如databasebeans,shoppingcarts等);客户端的类(小程序,实用工具类)开发web应用的步骤1、开发Web组件代码2、如果需要的话,开发Web应用的部署描述(deploymentdescriptor)3、编译Web应用组件和被组件引用的辅助类库4、(可选)将应用打包成可部署的单元(deployableunit)5、将应用部署为Web容器6、为Web应用连接一个URL地址*4.Web组件可以是Servlet和web页面,哪些技术可以实现Web页面Web模块包含:Web组件和Web资源、服务器端的应用类、客户端的类JSP,JSF*5.Web应用的一些特征可以在部署到容器时被配置,两种配置的方式是什么?JavaEE注解的方式(JavaEEannotations);XML部署文件(deploymentdescriptor);*6.Web容器提供了哪些服务?Web容器提供了许多支持服务使得可以加强对网络组件的能力,使他们更容易开发。7.Web模块的目录结构。(目录结构,web-info的子目录,每一层的内容)1、根目录documentroot:存放html,XHTML页面,客户端类和文档,静态资源例如图片等的目录;2、WEB-INF目录:(1)已经编译的class服务器端的类文件夹(servlets,enterprisebeanclassfiles,utilityclasses,andJavaBeanscomponents)(2)tags标签文件夹(3)lib引用类库文件夹(4)配置类文件(例如web.xml,ejb-jar.xml)ServletJavaservlet技术是所有的web程序的基础1.Servlet生命周期Servlet的生命周期由servlet所部属的容器控制当一个客户端请求发送到服务器时,容器开始执行以下步骤:1、如果servlet实例不存在Web容器会:载入servlet类、创建一个servlet的实例、调用init方法初始化这个实例2、然后调用service的方法,传递request和response对象如果容器需要移除这个servlet,那么他就会通过调用servlet的destroy方法来释放这个servlet一些web.xml中常见元素的含义1、web-app:主正文:根元素web-app2、servlet:应包括的Servlet类3、servlet-mapping:指定Servlet可以映射到哪种URL模式4、servlet-name:注册名5、servlet-class:类名6、url-pattern:URL模式构件响应的步骤(这个不太清楚是指什么构件,所以不太清楚,如果有谁知道的,欢迎补充)当一个客户端请求发送到服务器时,容器开始执行以下步骤:2、如果servlet实例不存在Web容器会:载入servlet类、创建一个servlet的实例、调用init方法初始化这个实例2、然后调用service的方法,传递request和response对象2.Http请求,URL组成部分包括哪些元素?采用请求响应模型,request(从客户端到服务器端),response(从服务器端到客户端)1、Request包括:request方法(包括GET,HEAD,POST,PUT,DELETE,OPTIONS,TRACE);requestURL(一个字符串,由它来导向一个web组件,或者是一个静态的对象,例如html页面或者是图片文件什么的);headerfields;body3、Response包括:resultcode(例如404(表示请求资源不可用),401(请求需要HTTP认证),500(服务器内部错误导致无法完成请求)503(服务器超载导致无法完成请求));headerfields;body3、URL组成:http://[host]:[port][requestpath]?[querystring]请求路径由以下元素组成:上下文路径:向前的斜线/和servlet的Web应用的上下文根的拼接。servlet路径:与激活该请求的组件别名相应的路径部分,由向前的斜线/开始。路径信息:请求路径的部分,不是上下文路径或者servlet路径的部分。3.Tomcat的组件结构,以及如何处理请求。1、组件结构:Server:代表一个服务器Connector:在某一个指定端口监听用户请求,并且将获得的请求交给engine来处理Engine:将获得的请求匹配到某个虚拟主机上,并且吧请求交给该host来处理Host:代表虚拟主机,每一个都和某个网络域名想匹配,每一个都可部署多个web应用Context:对应一个web应用(由一些Servlet,HTML,Java类