什么是J2ee
一、准备篇1什么是J2EE?它和普通的Java有什么不同?答:J2EE全称为Java2Platform,EnterpriseEdition。“J2EE平台本质上是一个分布式的服务器应用程序设计环境——一个Java环境,它提供了:宿主应用的一个运行基础框架环境。一套用来创建应用的Java扩展API。”(引自《J2EE服务器端高级编程》)2J2EE好学吗?答:J2EE是很多技术的集合体,并且还在成长中。你会遇到很多专有名词:比如(X)HTML,Servlet/JSP,JDBC,JMS,JNDI,EJB,XML,WebService。尤其是XML和WebService正在快速成长。幸运的是,你不需要等到学会所有技术后再开始编程。大体上J2EE可以分成3个主要应用:Servlet/JSP,EJB,XML/WebService和一些支撑技术例如JDBC和JNDI。你可以一个一个的学。3J2EE有什么用?答:用来建设大型的分布式企业级应用程序。或者用更时髦的名词说就是“电子商务”应用程序。这些企业可能大到拥有中心数据库服务器,Web服务器集群和遍布全国的办公终端,也可能小到只不过想做一个网站。4学J2EE有前途吗?答:在这一市场目前只有一种技术可以和J2EE竞争,那就是Microsoft的.NET。相对来说.NET要“新”一些而J2EE要“老”一些。但是.NET只能用于Windows平台(Microsoft声称要开发C#在Linux上的虚拟机但是尚未兑现该诺言),考虑到Linux的发展势头,你可以相信.NET不会一统天下。5据说J2EE的性能不如.NET好,是真的吗?答:在Sun公司提供的样例程序PetStore上,Microsoft声称不如相同的.NET程序好。而Sun公司反驳说这一程序不能真正体现J2EE的性能,并且指责Microsoft在数据库上做了优化。作者没有学习过.NET因而不能妄下断言。无论如何,大型分布式程序中的性能瓶颈通常首先来自于错误的设计。6听你说了这么多,我想学着玩玩。答:除非你想靠它当饭吃或者作为技术储备,否则请不要浪费你的时间。Flash要好玩得多。计算机游戏就更加好玩了。7学习J2EE该怎么开始?答:首先,下载一个J2EE服务器。其次,去java.sun下载J2EE的API。第三,找一本好的参考书。最后,找一个顺手的IDE。J2EE服务器。你可以用Sun的J2EESDK(免费),或者Weblogic(性能最好,但是太大,而且作者不推荐盗版行为),或者JBoss(免费,就是文档太少),或者JRun(开发版免费,作者用这个)。参考书作者感觉Wrox的《J2EE服务器端高级编程》不错,但是太老(作者手头的是2001年中文版)。你还需要去下载一些最新的技术资料(当然肯定是英文的)。IDE如果你的机器配置够好(内存至少512M以上,256M或以下请勿考虑),可以用IBM的WSAD,不然就继续用Eclipse或者其他。你也可以经常去水木清华的Java版逛逛,但是在发贴前先看看精华区里有没有你要的答案。8我下了一个J2EE服务器但是不会配置。答:请认真阅读随机指导文档,不同的服务器的配置都不一样,作者爱莫能助。9我发现你没有提到Tomcat。答:Tomcat只是一个Web服务器,更准确地说主要只是一个WebContainer。如果你想要学习EJB的话,Tomcat无法满足你的需要。二、Servlet/JSP篇10什么是Servlet?答:一个Servlet是一个Java类。它处理Http(s)请求并作出响应,包括返回一个HTML页面或转交给其他URL处理。Servlet必须运行在一个WebContainer例如Tomcat中。Servlet必须是javax.servlet.http.HttpServlet的子类,你可以继承doGet()或者doPost()方法,两者分别对应于Http(s)中的Get请求和Post请求。11我怎么获得Http请求里的参数?答:HttpRequest的()方法。例如:StringparamValue=request.("paramName");12我怎么返回结果?答:你可以利用相关API打开一个输出流,并向流中直接写入一个HTML页面。但是作者完全不赞成这样做。一方面这样做会很罗嗦。另一方面从Model-View-Controller模式(在《J2EE核心模式》中被归为FrontController模式)的观点来看,你应当提供一些HTML或者JSP作为视图(view),而Servlet则根据请求参数决定转到哪一个视图。你可以利用response.(...)方法或request.(...).forward()方法来实现。13()和forward()有什么不同?答:()是向浏览器发送一个redirect通知,浏览器重定向到新的URL。而forward是在服务器端直接转到新的URL,对于浏览器是透明的。前者浏览器的地址栏显示的是新的URL,后者浏览器的地址栏显示的是Servlet的URL。因而当目标URL会自动刷新时,两者会造成一些差别。14我写了一个Servlet程序,怎么运行它?答:开发J2EE程序有一个部署(deploy)的概念,实际上是开发——部署——运行的三部曲。大多数服务器支持Hotdeploy。你只需要在相应的Application目录(具体路径依赖于服务器)下面建立一个符合WAR或EAR格式(参见16,17)的目录,启动服务器,就可以通过浏览器访问了。特别的,你的Servlet的class文件应当放在/WEB-INF/classes目录中。注意J2EESDK不支持Hotdeploy,你需要通过它的deploytool来部署。Tomcat只支持WAR格式。15EAR和WAR有什么不同?答:EAR是一个完整的J2EE应用程序,包括Web部分和EJB部分。WAR只是其中的Web部分。16EAR格式是怎样的?答:一个EAR可以包含任意多个WAR或EJBJAR,并且包含一个META-INF的目录。在/META-INF中包含了一个application.xml,其中描述了这个EAR包含哪些模块,以及安全性配置。细节请看参考书。17WAR格式是怎样的?答:一个WAR包含一个WEB-INF的目录,这个目录下包含classes目录,lib目录和web.xml。/WEB-INF/classes存放按package组织的class文件,/WEB-INF/lib目录存放jar文件,web.xml描述了很多东西,请读参考书。18我的普通HTML文件应当放在哪里?答:放在除了/WEB-INF以外的其他地方。19我访问不到servlet,甚至连HTML文件都访问不到!答:第一你没启动服务器。第二你敲错了端口。第三你没有正确配置context-path。第四你的服务器不支持autoreload或者你关闭了这一选项,你得重启服务器。第五确认你没有把HTML放在/WEB-INF目录下,那是访问不到的。20我能访问HTML但是访问不到servlet。答:请检查你的web.xml文件。确保你正确定义了和元素。前者标识了一个servlet,后者将一个相对于context-path的URL映射到一个servlet。在Tomcat中你可以通过/context-path/servlet/package/servletname的形式访问servlet,但是这只是Tomcat的便捷访问方式,并不是正式规范。细节请看参考书。21什么是JSP?它和Servlet有什么区别?答:你可以将JSP当做一个可扩充的HTML来对待。虽然在本质上JSP文件会被服务器自动翻译为相应的Servlet来执行。可以说Servlet是面向Java程序员而JSP是面向HTML程序员的,除此之外两者功能完全等价。
j2ee是什么,包括哪些技术
j2ee是什么,包括哪些技术,答案如下:一、J2EE是什么?从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物。世界知识产权组织在1977年版的《供发展中国家使用的许可证贸易手册》中,给技术下的定义:“技术是制造一种产品的系统知识,所采用的一种工艺或提供的一项服务,不论这种知识是否反映在一项发明、一项外形设计、一项实用新型或者一种植物新品种或者反映在技术情报或技能中,或者反映在专家为设计、安装、开办或维修一个工厂或为管理一个工商业企业或其活动而提供的服务或协助等方面。”这是国际上给技术所下的最为全面和完整的定义。知识产权组织把世界上所有能带来经济效益的科学知识都定义为技术。观其本质,技术的存在取决于人们的需要,并满足其需要。早期人类创造及使用技术是为了解决其基本需求。而如今的技术则是为了满足人们更广泛的需求和欲望,并需要一巨大的社会结构来支撑它。此一现象的一重要例子为电话。当电话在发展的过程中,社会变得有想要更可携设备的欲望。最后,此一欲望产生了对新产品的需求,导致了手机的发明。几乎每个人都可以随时通话,不论其身在何处。此一发明改变了人们之间的关系:有些人现今被负更多说明义务及更被依赖,且更少理由不保持连系。技术的复杂性创造了一个技术与社会间的相互影响。