JavaWeb開發(fā)Eclipse環(huán)境配置--史上最詳細(xì)的教程(轉(zhuǎn))

https://www.cnblogs.com/mkwfqd/p/5771756.html



JavaWeb開發(fā)Eclipse環(huán)境配置--史上最詳細(xì)的教程


【前言】

JSP本身是JavaWeb中的知識(shí),但是在學(xué)習(xí)Android網(wǎng)絡(luò)時(shí),必然要涉及到與服務(wù)器之間的交互,所以學(xué)一下JSP以及其他JavaWeb的內(nèi)容還是很有必要的,至少能明白程序在訪問服務(wù)器時(shí),整個(gè)過程的原理。

其實(shí),在學(xué)習(xí)Android之前,Java和JavaWeb的知識(shí)都是要先學(xué)習(xí)的。本人是在2014年7月正式開始Android方向的研究學(xué)習(xí),在這之前沒有接觸任何和計(jì)算機(jī)軟件相關(guān)的知識(shí)(唯一相關(guān)的是,本科學(xué)過一門C語言課程,不過現(xiàn)在已經(jīng)忘光了)。

我們來看下面的這張圖就知道了:

兩張圖拼起來看就對(duì)了,借鑒的是李剛的“瘋狂Java學(xué)習(xí)路線圖”,手機(jī)像素渣,圖片不是很清晰,將就一下吧。說白了,在學(xué)習(xí)Android之前要具備一定的Java基礎(chǔ)(Java SE 、JavaWeb、數(shù)據(jù)庫等)。而如果要學(xué)的扎實(shí)并且有個(gè)好的就業(yè)崗位,以下基礎(chǔ)知識(shí)需要全部具備:計(jì)算機(jī)基礎(chǔ)知識(shí)(操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、設(shè)計(jì)模式等)、C/C++、Java、Android、Linux

所以,考慮到時(shí)間的因素,像我這種初學(xué)者,只能在邊學(xué)Android的時(shí)候邊學(xué)其他的知識(shí)。我學(xué)到了哪里,我的博客就會(huì)寫哪里,也希望能和其他初學(xué)者一起共勉,一起見證!


【正文】

一、JSP簡(jiǎn)介

JSP:Java Server Pages。在傳統(tǒng)的HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁。


二、學(xué)習(xí)重點(diǎn):

JSP語法(腳本、指令、動(dòng)作)

JSP的內(nèi)置對(duì)象

創(chuàng)建動(dòng)態(tài)的內(nèi)容

用戶會(huì)話跟蹤


三、使用tomcat軟件在本地搭建服務(wù)器:

Tomcat是Apache組織的Jakarta項(xiàng)目中的一個(gè)重要子項(xiàng)目,是Sun公司推薦的運(yùn)行Servlet和JSP的容器(引擎),其源代碼完全公開。

有了這個(gè)服務(wù)器,就相當(dāng)于在本地的計(jì)算機(jī)有了一個(gè)網(wǎng)站,然后我們可以通過瀏覽器來訪問這個(gè)網(wǎng)站。

tomcat軟甲是apache旗下的一個(gè)開源項(xiàng)目。軟件下載鏈接:http://tomcat.apache.org/

下載之后,將壓縮包解壓:

注意目錄名不能有中文和空格。目錄介紹如下:

bin:二進(jìn)制執(zhí)行文件。里面最常用的文件是startup.bat

conf:配置目錄。里面最核心的文件是server.xml。可以在里面改端口號(hào)等。默認(rèn)端口號(hào)是8080,也就是說,此端口號(hào)不能被其他應(yīng)用程序占用。

lib:庫文件。tomcat運(yùn)行時(shí)需要的jar包所在的目錄

logs:日志

temp:臨時(shí)產(chǎn)生的文件,即緩存

webapps:web的應(yīng)用程序。web應(yīng)用放置到此目錄下瀏覽器可以直接訪問

work:編譯以后的class文件。

軟件運(yùn)行之前要保證Java環(huán)境變量已經(jīng)配置:

上圖中,變量名為JAVA_HOME,變量值為:JDK安裝的絕對(duì)路徑。

注:Catalina_Home環(huán)境變量:指定tomcat在啟動(dòng)時(shí)啟動(dòng)哪個(gè)tomcat,一般不推薦配置。

回到tomcat的bin目錄中, 雙擊startup.bat:

之后彈出如下界面:

這個(gè)時(shí)候,本地的服務(wù)器就已經(jīng)搭建起來了。如果想關(guān)閉服務(wù)器,可以直接關(guān)閉上面的窗口,或者在里面輸入Ctrl+C禁止服務(wù)。

首先查看自己電腦的ip地址,我的計(jì)算機(jī)的ip地址為:192.168.1.112。

在瀏覽器中輸入http://192.168.1.112:8080/(或者輸入http://localhost:8080/也是可以的)。如果彈出如下界面,進(jìn)入本地服務(wù)器的首頁,表示tomcat安裝成功并且啟動(dòng)起來了:

上方圖片中,顯示我的Tomcat的版本為:8.0.14。它的版本號(hào)是跟著JDK的版本走的,所以,建議JDK的版本為1.8。

我們現(xiàn)在在瀏覽器上測(cè)試一下它吧:

首先在D:\apache-tomcat-8.0.14\webapps\ROOT目錄中新建一個(gè)jsp文件:

jsp文件中填入如下內(nèi)容:

<%

String name = request.getParameter("name");

String pwd = request.getParameter("password");

out.print("name:" + name + ",password:" + pwd); //在瀏覽器上顯示輸入地址中的用戶名與密碼

%>?

現(xiàn)在我們隨便起一個(gè)用戶名和密碼的賬號(hào),比如用戶名smyhvae,密碼為smyh,然后在瀏覽器中輸入如下內(nèi)容:

http://192.168.1.112:8080/test.jsp?name=smyhvae&password=smyh

輸入這個(gè)鏈接之后,回車,出現(xiàn)如下界面:

上圖中表示,我們向服務(wù)器發(fā)送這樣一個(gè)請(qǐng)求,鏈接中,問號(hào)前面的內(nèi)容代表請(qǐng)求的路徑,問號(hào)后面是我們要傳送的參數(shù)(鍵是固定不變的,值是用戶自己填寫的),然后服務(wù)器返還給我們這樣的數(shù)據(jù)。


三、將Tomcat和eclipse相關(guān)聯(lián):

打開eclipse for Java EE ,選擇菜單欄Windows-->preferences,彈出如下界面:

上圖中,點(diǎn)擊“add”的添加按鈕,彈出如下界面:

上圖中,選擇對(duì)應(yīng)的Tomcat版本,繼續(xù):

上圖中,選擇Tomcat的路徑,以及JRE,點(diǎn)擊“完成”,配置完畢。

新建java工程,建一個(gè)動(dòng)態(tài)的工程:

注:對(duì)“動(dòng)態(tài)”的理解:html是靜態(tài)的,寫成什么,就是什么。動(dòng)態(tài)指的是根據(jù)服務(wù)器端返回的數(shù)據(jù)動(dòng)態(tài)地生成頁面。比如張三登陸可以看到張三的信息;換成李四登陸,可以看到李四的信息。

點(diǎn)開上圖中的紅框部分,彈出如下界面:

按照上圖進(jìn)行配置,其中,第三個(gè)紅框中,是加載自己的jdk的安裝路徑即可:

然后,單擊finish。繼續(xù):


工程文件結(jié)構(gòu):

上圖中,deployment descriptor:部署的描述。Web App Libraries:自己加的包可以放在里面。build:放入編譯之后的文件。WebContent:放進(jìn)寫入的頁面。

在WebContent文件夾下新建一個(gè)jsp文件。在下圖中可以看到它的默認(rèn)代碼:

上圖中,這種編碼方式不支持中文。我們來修改一下JSP文件的編碼方式,按上圖所示,鼠標(biāo)右擊,選擇"Preferences",彈出如下對(duì)話框:

上圖中,將編碼方式改為UTF-8。

同樣,我們還需要將文本內(nèi)容的編碼方式改為UTF-8(這個(gè)編碼和程序無關(guān)),選擇菜單欄Windows--preferences,打開如下界面,將編碼方式改為UTF-8,并點(diǎn)擊update:

以后每次新建一個(gè)jsp文件,默認(rèn)的編碼方式就是UTF-8了。默認(rèn)代碼如下:

1 <%@ page language="java" contentType="text/html; charset=UTF-8"

2? ? pageEncoding="UTF-8"%>

3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

4 <html>

5 <head>

6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

7 <title>Insert title here</title>

8 </head>

9 <body>

10

11 </body>

12 </html>

我們?cè)趆ello.jsp中修改一下,將上方的第7行的標(biāo)題改一下,并在第10行添加輸出語句。最終代碼如下:

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2? ? pageEncoding="UTF-8"%> 3 4 5 6 7 <title>hello JSP</title>8 9 10? ? <%

11? ? ? ? out.println("hello,JSP");

12? ? %>13 14

上方的第11行,out指的是輸出流。通過頁面獲取這個(gè)輸出流,并打印在頁面中。以前學(xué)的System.out.println()指的是向控制臺(tái)輸出。

程序運(yùn)行之前,我們先修改一下瀏覽器選項(xiàng):

現(xiàn)在我們開始運(yùn)行程序:

運(yùn)行時(shí),彈出如下錯(cuò)誤:(如果沒有此錯(cuò)誤,請(qǐng)忽略)

原因是,我們之前點(diǎn)擊了Tomcat安裝包中的?startup.bat,這樣一來就手動(dòng)打開了Tomcat服務(wù)器,這明顯是多余的,因?yàn)槌绦蜻\(yùn)行時(shí),eclipse會(huì)自動(dòng)開啟Tomcat服務(wù)器。所以我們先手動(dòng)關(guān)掉tomcat軟件,再次運(yùn)行程序,就行了。控制臺(tái)信息如下:

瀏覽器會(huì)自動(dòng)打開,網(wǎng)頁信息如下:

現(xiàn)在來解釋一下上方網(wǎng)址的名稱為什么顯示的是 http://localhost:8080/TomcatTest/

我們選中項(xiàng)目,右鍵選擇“properties”,彈出如下對(duì)話框:

上圖顯示,我們所部署的路徑是根目錄,根目錄的名稱默認(rèn)為我們新建的項(xiàng)目名,所以網(wǎng)址才會(huì)顯示為:主機(jī)名+端口號(hào)+項(xiàng)目名。

網(wǎng)頁顯示的錯(cuò)誤為404,即找不到網(wǎng)頁,可見網(wǎng)頁中并沒有看到我們新建的jsp文件,我們?cè)賮碚乙幌略颉4蜷_工程文件中,WEB-INF目錄下的web.xml文件:

上圖解釋:當(dāng)程序運(yùn)行時(shí),Tomcat會(huì)首先讀取工程的配置文件,且名字必須為web.xml。當(dāng)系統(tǒng)默認(rèn)進(jìn)入的鏈接為:主機(jī)名+端口+工程名時(shí),服務(wù)器就會(huì)找上圖中<welcome-file-list>標(biāo)簽里的頁面(有好幾個(gè)頁面的話,就依次往下找);而標(biāo)簽<welcome-file-list>中并沒有hello.jsp文件。所以,我們需要在瀏覽器地址欄輸入:http://localhost:8080/TomcatTest/hello.jsp,才會(huì)將hello.jsp頁面顯示出來。效果如下:

四、程序運(yùn)行的原理:

我們現(xiàn)在來分析一下上面的程序運(yùn)行的原理。

當(dāng)在服務(wù)器上運(yùn)行后,會(huì)生成與工程文件并列的一個(gè)文件夾:Servers。如下:(如果刪掉了Servers文件夾,當(dāng)重新運(yùn)行時(shí),文件夾又會(huì)自動(dòng)生成)

這個(gè)文件夾是Tomcat服務(wù)器的一個(gè)基本的配置。

上圖中表明,我們新建的項(xiàng)目已經(jīng)部署到Tomcat服務(wù)器上去了,也就是看到了TomcatTest這個(gè)工程被發(fā)布出去了(發(fā)布的過程即:將寫的工程打包以后放到Tomcat里)。

其實(shí)eclipse for EE已經(jīng)包含了Tomcat服務(wù)的插件,但其也必須依賴Tomcat來啟動(dòng)。我們雙擊上圖的紅框部分,顯示如下信息:

上圖的紅框部分表明,服務(wù)的部署是在eclipse里面(默認(rèn)是放在工作空間里的.metadata文件夾下),而不是在Tomcat里面。我們來改一下,前提是工程并沒有發(fā)布到Tomcat中去,那我們先把之前發(fā)布的版本刪了吧(稍后重新發(fā)布):

然后就可以修改部署的路徑了:

上圖中,使用Tomcat的安裝目錄作為部署的位置,并修改部署的路徑Deploy path(建議改成Tomcat的webapps目錄下),然后保存即可。這時(shí),重新運(yùn)行程序。現(xiàn)在來到Tomcat的webapps目錄下,發(fā)現(xiàn)多了一個(gè)TomcatTest文件夾(即工程文件名),并且文件夾下包含了工程文件中WebContent的內(nèi)容:

上圖說明,說明這才是真正將程序發(fā)布到服務(wù)器上。

我們?cè)賮淼絋omcat的work目錄中,看一下編譯之后的文件:

?

上圖表明,Tomcat會(huì)先將jsp文件轉(zhuǎn)為java文件,然后再把java文件編譯為class文件,最終執(zhí)行的是class文件。現(xiàn)在來看一下JSP運(yùn)行的原理。


四、JSP的運(yùn)行原理:

只有當(dāng)客戶端第一次請(qǐng)求JSP時(shí),才需要將其轉(zhuǎn)換、編譯(所以第二次瀏覽同樣的網(wǎng)頁時(shí),速度會(huì)更快)

Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。

程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。

所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低。

總結(jié):本文的整個(gè)過程,讓我們學(xué)會(huì)了如何配置Tomcat和部署工程文件,明白了jsp文件是怎樣發(fā)布到服務(wù)器上并最終顯示出來。關(guān)于JSP的進(jìn)一步學(xué)習(xí),將在后面呈現(xiàn)。




五、Tomcat的其他問題:

1、端口占用問題:

在cmd中輸入netstat -ano命令,查看占用端口的進(jìn)程pid,再用任務(wù)管理器關(guān)閉相應(yīng)進(jìn)程即可。

我們?cè)跒g覽器中輸入"www.baidu.com",但是并沒有輸入端口號(hào)依然能進(jìn)入網(wǎng)頁,這是因?yàn)闉g覽器默認(rèn)的端口號(hào)為80,如果對(duì)方服務(wù)器是監(jiān)聽在80端口上,則在瀏覽器中輸入網(wǎng)址時(shí),可以不用輸入端口號(hào)。

Tomcat默認(rèn)監(jiān)聽的端口號(hào)是8080(server.xml文件的第63行),可以在配置文件conf/server.xml中修改

【備注】Tomcat關(guān)聯(lián)幫助文檔Javadoc

我們以后如果要使用到Servlet類,但是想查看里面的源碼和幫助文檔,發(fā)現(xiàn)看不到:

按住ctrl點(diǎn)進(jìn)去之后,是下面的界面:

我們下載的tomcat中自帶了源碼,但是幫助文檔需要另外下載:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、...
    C86guli閱讀 4,716評(píng)論 6 72
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,869評(píng)論 18 139
  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明: 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 ...
    LUNJINGJIE閱讀 4,002評(píng)論 1 33
  • 2018.9.13 星期四 晴 親子日記第284天 中午放學(xué)回家的路上,女兒說起自己的考試情況,數(shù)學(xué)沒有不會(huì)的,應(yīng)...
    涓涓流水_672f閱讀 220評(píng)論 0 3
  • 今天下班后,單位又召開了全體教職工大會(huì),會(huì)議總結(jié)了本學(xué)期方方面面的工作也對(duì)下學(xué)期的工作提出了要求!回到家近八點(diǎn)了,...
    五顏六色的圓圈小宿閱讀 183評(píng)論 0 1