JAVA教程之进修java必要晓得的一些成绩
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。成绩1、筹办篇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.com下载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没法满意你的必要。
2、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的getParameter()办法。比方:StringparamValue=request.getParameter("paramName");
12我怎样前往了局?
答:你能够使用相干API翻开一个输入流,并向流中间接写进一个HTML页面。
可是作者完整不同意如许做。一方面如许做会很罗嗦。
另外一方面从Model-View-Controller形式(在《J2EE中心形式》中被回为FrontController形式)的概念来看,
你应该供应一些HTML大概JSP作为视图(view),而Servlet则依据哀求参数决意转到哪个视图。
你能够使用response.sendRedirect(...)办法或request.getDispatcher(...).forward()办法来完成。
13sendRedirect()和forward()有甚么分歧?
答:sendRedirect()是向扫瞄器发送一个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>和<servlet-mapping>元素。
前者标识了一个servlet,后者将一个相对context-path的URL映照到一个servlet。
在Tomcat中你能够经由过程/context-path/servlet/package/servletname的情势会见servlet,
可是这只是Tomcat的便利会见体例,并非正式标准。
细节请看参考书。
21甚么是JSP?它和Servlet有甚么区分?
答:你能够将JSP当作一个可扩大的HTML来看待。
固然在实质上JSP文件会被服务器主动翻译为响应的Servlet来实行。
能够说Servlet是面向Java程序员而JSP是面向HTML程序员的,除此以外二者功效完整等价。
22我的JSP显现的汉字是乱码。
答:在你的JSP开首加上一行<%@pagecontentType="text/html;charset=gb2312"%>
假如你已声了然page我想你晓得该怎样修正。
23JSP文件寄存在那里?
答:除/WEB-INF下的任何中央。
24在JSP内里怎样援用JavaBean。
答:起首,确认你要援用的类在/WEB-INF/classes下或在/WEB-INF/lib的某个jar内。
其次,在JSP里加一行<jsp:useBeanid="..."scope="..."class="..."/>
详细注释请看参考书。
25我想在servlet间传送数据。
答:使用session。在Servlet/JSP中,你能够在4个中央保留数据。
1)page,本页面。
2)session,用来寄存客户相干的信息,好比购物车,对应接口为javax.servlet.http.HttpSession。
session机制实践上是cookie和URLRewrite的笼统,服务器会主动利用cookie或URLRewrite来完成。
3)request,能够在forward()时传送信息,对应接口为javax.servlet.http.HttpRequest。
4)application,或称context,寄存全局信息,对应接口为javax.servlet.ServletContext。
26怎样挪用cookie?
答:作者倡议利用session,你老是会碰到某些禁用cookie的用户。这时候session会主动利用URL重写来完成。
27怎样在JSP内里完成文件下载?
答:实践上这是一个HTML的成绩。谜底是一个超链接<a>。
28怎样完成文件上传?
答:客户端是HTML成绩,在form中设置method为post,enctype为multi-part/form-data,加一个<inputtype="file">。
而在吸收的servlet中只是一个I/O成绩。
29我想让页面主动革新,好比谈天室。
答:这是一个HTML成绩,在<head>部分中加一条<metahttp-equiv="refresh"content="5"url="...">。
这是所谓的Clinet-push,客户端革新手艺。
30我想让用户登录今后才干会见页面。
答:利用声明式平安措施。
你只必要在web.xml中界说平安脚色(Role),并界说受回护的URL汇合只能由特定Role会见。
年夜多半服务器撑持基于数据库的用户映照,你只需在响应数据库中创建两张表并设置服务器就能够了。
注重J2EESDK不撑持基于数据库的用户映照。
细节请看参考书和服务器文档。
31我想要能注册用户。
答:参看30。在承受注册哀求的Servlet中实行写进数据库操纵便可。
32怎样在JSP中会见数据库?
答:尺度做法是利用DAO形式,界说一个Javabean来会见数据库并在JSP中利用。
但是,当你的数据库形式很复杂时,你可使用JSTL中的<sql:query>标签来疾速会见。
33甚么是JSTL?
答:JSTL是JspStandardTagLibrary的缩写。这是一组通用标签并将成为JSP2.0的一部分。
个中包括赋值<c:set>,分支<c:if>,轮回<c:forEach>,查询数据库<sql:query>,更新数据库<sql:update>
等。今朝你必要像增加自界说标签库一样来增加JSTL,可是能够估计JSP2.0会将JSTL作为构成部分。
标签库能够在http://jakarta.apache.org下载。注重JSTL必要在撑持JSP1.2或更高版本的容器下运转。
匡助文件能够浏览sun的JSTL正式标准。
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
页:
[1]