大家學(xué)習(xí)Java有各自的理由,基本上Java是一個比較好的面向?qū)ο笳Z言,api豐富
是當(dāng)前比較主流的編程語言,J2SE/J2ME/J2EE在各個開發(fā)領(lǐng)域都發(fā)展良好
Java不會取代其他開發(fā)語言或開發(fā)平臺,如c/c++/c#或Delphi/.NET
沒有最好的語言,只有某種應(yīng)用場合下相對合適的語言
JRE
Java 2 Runtime Environment, Java 運(yùn)行時環(huán)境
包括Java虛擬機(jī)(JVM),和必須的類庫
它是運(yùn)行Java程序和網(wǎng)頁Applet的必備環(huán)境
它被包含在j2sdk中,也可以單獨下載(約10M)
下載地址: http://java.sun.com/getjava/download.html
JDK/SDK/J2SE
Java 2 Software Development Kit, Standard Edtion
是開發(fā)Java的必備環(huán)境,包括編譯器等工具和大量類庫,一般IDE中也會自帶
下載地址:http://java.sun.com/j2se/downloads.html
J2EE
Java 2 Platform, Enterprise Edition
是Java在企業(yè)級應(yīng)用的主要技術(shù),也是目前Java最主要的應(yīng)用場合
包括JAXP、JAXR、JAX-RPC、SAAJ、JAAS、JavaMail、JMS、JSF、JSP/Servlet等
開發(fā)J2EE,可以下載j2eesdk開發(fā)包,一般IDE中也會自帶
相關(guān)鏈接:http://java.sun.com/j2ee
J2ME
Java 2 Platform, Macro Edition
是Java應(yīng)用于嵌入式系統(tǒng)(如手機(jī))的主要技術(shù)
相關(guān)鏈接:http://java.sun.com/j2me
開發(fā)方式
市面上的IDE(集成開發(fā)環(huán)境)可以極大的提高開發(fā)效率
但如果你初學(xué)Java,我們推薦用JDK+Editplus或UltraEdit
雖然簡陋些,但卻可以學(xué)的比較扎實
過早的依賴IDE只會讓你對Java API蜻蜓點水,一知半解.
甚至都未能掌握J(rèn)ava的基本語法
掌握了扎實的基礎(chǔ)后,再選擇一款I(lǐng)DE進(jìn)行開發(fā)是很容易的
學(xué)習(xí)或使用Java,多查javadoc是很重要的(推薦使用JavaDOCHelper,類似MSDN的界面)
版上的不少問題,其實稍微查查便不是問題
設(shè)置環(huán)境變量
安裝了JDK以后,要配置環(huán)境變量
Windows 2000
我的電腦->屬性->高級->環(huán)境變量
添加以下環(huán)境變量(假定你的java安裝在d:/Java/j2sdk1.4.2)
變量名 值 說明
JAVA_HOME d:/Java/j2sdk1.4.2
CLASSPATH . .表示當(dāng)前目錄,即搜索當(dāng)前目錄
PATH ...;%JAVA_HOME%/bin ...表示原來的PATH值
新開一個dos窗口,鍵入java和javac測試一下
Linux
以下為RedHat,bash為例 不同發(fā)行版略有不同,環(huán)境變量的設(shè)置詳見Unix/Linux版
修改用戶目錄下的.bash_profile,如vi ~/.bash_profile
JAVA_HOME=/usr/local/java/j2sdk1.4.2
CLASSPATH=.
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH
重新登陸,使這個設(shè)置生效,在終端輸入java javac測試一下
簡單測試程序
代碼:--------------------------------
public class Test{
public static void main(String[] args){
System.out.println("Hello world!");
}
}
-------------------------------------
用記事本等工具編寫,保存成Test.java
注意,
如果你的windows設(shè)置'不顯示已知擴(kuò)展名'的話,
很有可能被保存成Test.java.txt
然后在命令行工具,cd到Test.java所在目錄,執(zhí)行
javac Test.java
java Test
關(guān)于Java的學(xué)習(xí)
入門Java,請看一本系統(tǒng)講解Java的書籍
這方面的書,市面上很多,大同小異,無所謂挑那本
但盡量挑本面向高版本的講解語法的書,千萬不要選《VJ++入門到精通》之類
推薦的書籍如 Java in a Nutshell, Java大學(xué)教程,Java核心技術(shù),Java編程思想等
系統(tǒng)學(xué)習(xí)Java的基本知識之余,一定要勤實踐,自己給自己一些動手機(jī)會
適度的記住一些常用api,不要過分依賴IDE的代碼提示
開發(fā)工具
JBuilder
業(yè)界最主流的IDE之一,是Java開發(fā)工具的大哥大
目前最新版本 JBuilder 2005
無論開發(fā)j2se、j2me、j2ee還是xml/webservice,都是一把利器
Foundation Edition可免費下載,但功能較少
網(wǎng)上有流傳企業(yè)版,為避免不必要的麻煩,請謹(jǐn)慎使用(尤其在公司)
相關(guān)鏈接:http://www.borland.com/products/jbuilder
Eclipse
新興的Java IDE,免費、開放源代碼、跨平臺、功能強(qiáng)大、運(yùn)行速度快
同時可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的Java開發(fā)環(huán)境中加
入Tomcat服務(wù)器插件。
相關(guān)鏈接:http://www.eclipse.org
Ant
它是流行的Java build工具,"Everyone should use ant"
Ant不是一個IDE,但卻可以做很多IDE的事,如編譯/打包/部署/單元測試/CVS等
對于中等規(guī)模以上的項目,必定依賴很多類庫和擁有復(fù)雜的包結(jié)構(gòu)
使用Ant處理這些是極佳的選擇
相關(guān)鏈接:http://ant.apache.org
JSP
Java Server Page,一種Java Web開發(fā)的一項技術(shù),和javascript沒有什么關(guān)系.
Servlet
先于jsp出現(xiàn)的動態(tài)網(wǎng)頁技術(shù),類似cgi,但使用多線程處理請求.
jsp/servlet與Java的關(guān)系
Servlet只是繼承了HttpServlet的Java類,而jsp最終會被編譯成Servlet并執(zhí)行
很多在開發(fā)web時遇到的問題,其實和jsp/servlet本身沒什么關(guān)系,而是普通的Java問
題。 一個合格的jsp/servlet程序員首先應(yīng)該是合格的Java程序員。
建議在學(xué)習(xí)和使用jsp/servlet前,先打下堅實的Java基礎(chǔ)
以下問題不屬于jsp/servlet范疇
.常用API的使用,諸如"如何把int變?yōu)镾tring" "如何得到當(dāng)前時間" "如何創(chuàng)建線程"
.JDBC的使用和相關(guān)注意事項,諸如"如何訪問MySQL" "為什么我插入數(shù)據(jù)是亂碼"
.其他J2EE技術(shù)的使用,諸如"如何使用JavaMail" "如何訪問EJB"
推薦書籍
如果可能,請閱讀一本系統(tǒng)的書籍來指導(dǎo)你學(xué)習(xí)這項技術(shù)
筆者只看過"JSP高級編程"(機(jī)械工業(yè)2001年,廖若雪)
其他大型出版社出版的書都應(yīng)該不錯,如Wrox,O'Reilly,或者國內(nèi)出版社
挑書的時候最好選用jsp 1.2,servlet 2.3規(guī)范以上的書籍
Tomcat
這個是個開放源代碼的JSP/Servlet服務(wù)器,是jsp/servlet的參考實現(xiàn),適合初學(xué)
主頁http://jakarta.apache.org/tomcat/
Tomcat 4.1和Tomcat 5都是目前穩(wěn)定版本,后者支持最新的jsp/servlet標(biāo)準(zhǔn)
建議下載zip版的,解壓縮,運(yùn)行bin/starup.bat即可出現(xiàn)服務(wù)器啟動的界面
如果啟動失敗,請確定本機(jī)的Java環(huán)境已正確,參見JAVA_HOME和PATH的配置
conf目錄里是服務(wù)器的配置,webapps是部署網(wǎng)站的目錄
自己寫的java class應(yīng)該放哪里
假設(shè)你的index.jsp的位置是X:/test/index.jsp, X:/test是你的項目目錄
Test.class的位置應(yīng)該是X:/test/WEB-INF/classes/Test.class
項目中的lib應(yīng)該放哪里
X:/test/WEB-INF/lib/myLib.jar
如何寫個servlet
package testservlet;
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class FooServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().println("hi, I'm a servlet");
}
}
編譯這個類 javac -classpath servlet-api.jar FooServlet.java
其中這個jar可以從tomcat-5.0.19/common/lib/servlet-api.jar獲得
編譯后的class放在 X:/test/WEB-INF/classes/testservlet/FooServlet.class
其中testservlet你包的名字,應(yīng)盡量寫package,避免莫名其妙的麻煩
編譯X:/test/WEB-INF/web.xml,修改為
把這個程序部署到服務(wù)器上,比如把X:/test/*復(fù)制到tomcat/webapps/test/*
打開瀏覽器訪問 http://localhost:8080/test/foobar,順利的話會看到一行文字
jsp顯示的是亂碼怎么辦
jsp的中文問題以下幾種 //不包括jdbc讀寫數(shù)據(jù)庫的中文問題
1. jsp中寫了中文如
中文
, 卻不能顯示解決方法 在jsp第一行加入
<%@ page contentType="text/html; charset=gb2312" %>
2. 表單中寫了一個中文,如
卻不能接受到 <%System.out.println(request.getParameter("a"));%>
解決方法 在jsp或servlet中處理參數(shù)前加一條
request.setCharacterEncoding("GB2312");
3. http://host/a.jsp?name=中文 這樣的url中的name取不到
解決方法 應(yīng)該使用java.net.URLEncoder類把這個字符串轉(zhuǎn)成ascii
怎樣實現(xiàn)文件上傳
常見的Java文件上傳api有
Jakarta Commons FileUpload http://jakarta.apache.org/commons/fileupload/
COS
SmartUpload
下載相關(guān)的文件,里面一般有demo的
JSTL和EL
分別是Java Standard Tag Lib和Expression Language
可以大大簡化常規(guī)的jsp開發(fā),并讓頁面更簡潔,而不是充斥著scriptlet