用eclipse如何做第一個(gè)最簡單的html和Servlet HelloWorld例子web應(yīng)用

1) file/new/project/web/Dynamic(動(dòng)態(tài)) Web Project:  







































按照上面的截圖,當(dāng)我們點(diǎn)擊finish按鈕以后,eclipse按照我們的指示,生成了以下的空項(xiàng)目架子,準(zhǔn)備了所有的jar包和配置文件。我們先看一下下圖的畫紅圈的地方。里面有代表Tomcat的一堆Jar包。還有代表Servlet的一堆類的servlet-api.jar。當(dāng)然jre的jar包也包括進(jìn)來了,而且版本是1.6。


1.5)上面帶有所有需要的jar包的項(xiàng)目的空架子有了以后。就可以放手去做一個(gè)html了。右擊WebContent:New/Other/Web/Html File,之后點(diǎn)擊Next,輸入文件名:a.html,之后點(diǎn)擊Next,之后點(diǎn)擊Finish。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
編輯產(chǎn)生的新a.html:

<html>
hello
</html>

好,現(xiàn)在我們就像后面第3步run servlet一樣,右鍵點(diǎn)擊a.html。run as/run on server 來運(yùn)行a.html。具體指導(dǎo)圖見第3步。


























這一步成功以后,可以回頭反思一下,前面的理論了。

2)上面帶有所有需要的jar包的項(xiàng)目的空架子有了以后。就可以放手去做一個(gè)Servlet了。右擊我們的項(xiàng)目名ServletHello:New/Servlet



































馬克-to-win:注意這張圖中的URL mappings:是/MarkToWinServletHello1,是我們右擊右邊的edit按鈕專門改的。這是將來瀏覽器訪問這個(gè)Servlet的 url的地址。這里設(shè)置完,會(huì)被Eclipse記錄在Web.xml這個(gè)配置文件當(dāng)中。當(dāng)然將來我們也可以手動(dòng)更改Web.xml文件。不像前一段我們學(xué)的java基礎(chǔ)部分的知識(shí),這里的情況更加復(fù)雜。所以很多有關(guān)你項(xiàng)目的信息都記錄在web.xml文件當(dāng)中,用戶可以在這里設(shè)置信息,從而tomcat可以從這里獲取信息,達(dá)到用戶不重新編譯java文件,就可以重新設(shè)置項(xiàng)目參數(shù)的目的。比如我這次訪問的數(shù)據(jù)庫是oracle,下次我可以在Web.xml 當(dāng)中設(shè)置訪問的數(shù)據(jù)庫是mysql,而且項(xiàng)目不用重新編譯。因?yàn)閃eb.xml文件是純文本文件。






















這里我們只勾選了doGet方法。當(dāng)你在瀏覽器地址欄敲入某個(gè)servlet地址后,按回車紐后,通過網(wǎng)絡(luò),就激活了地球另一端一臺(tái)機(jī)器里的Tomcat中的servlet的doGet方法。這就是sun公司設(shè)計(jì)的整個(gè)J2ee規(guī)范中的servlet語法。

當(dāng)我們點(diǎn)擊Finish按鈕以后,Eclipse為我們生成了很多文件。其中和我們最相關(guān)的有兩個(gè)架子文件。一個(gè)是 ServletHello1.java,另外一個(gè)就是Web.xml文件。讓我們列出這兩個(gè)架子文件之中和我們相關(guān)的部分。Eclipse可真好,能做的都替我們做了。架子文件寫得非常完美。我們只需要加入少量的語句,項(xiàng)目就可以運(yùn)行了。Eclipse可真是一個(gè)完美的商業(yè)工具軟件呀!反正現(xiàn)在國內(nèi)軟件公司到處都在用Eclipse。沒有Eclipse,直接手動(dòng)編譯Servlet,然后部署到Tomcat當(dāng)中也可以做,但是那個(gè)工作量可想而知。方法網(wǎng)上有,有興趣的同學(xué)可以自己查。


Web.xml


















根據(jù)上圖:<servlet>這一塊和<servlet-mapping>這一塊,都共同有一項(xiàng)叫做<servlet- name>。這一項(xiàng)的值相同,說明這倆是一對(duì)兒。(當(dāng)有很多servlet時(shí),誰和誰一對(duì)兒就很重要)既然是一對(duì)兒,就說明當(dāng)我們?cè)跒g覽器的地址欄里輸入MarkToWinServletHello1時(shí)。com.ServletHello1的doGet方法就會(huì)被執(zhí)行。

ServletHello1.java:

package com;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletHello1 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  {

    }
}

以上就是Eclipse根據(jù)我們的指令生成的Servlet的架子程序。既然我現(xiàn)在講最簡單的Servlet helloworld程序。我就只加一句話。System.out.println("hello");不出意外,這句話應(yīng)該打印在,服務(wù)器端的 Tomcat的輸出屏幕上。
例:2.2.1

ServletHello1.java:

package com;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletHello1 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
         System.out.println("hello");
    }
}




3)好,我們現(xiàn)在就運(yùn)行我們的Servlet。右鍵點(diǎn)擊我們的Servlet,Run As/Run on server:















































運(yùn)行的結(jié)果如上圖。首先圖中下面的部分說明Tomcat已經(jīng)起來了。上面還有個(gè)紅鈕,點(diǎn)紅鈕就可以停止Tomcat運(yùn)行。圖中上面的部分,說明 Eclipse為我們激活了一個(gè)小型測試瀏覽器。




終于如愿以償,結(jié)果出來了。

馬克-to-win:對(duì)于學(xué)有余力的同學(xué),我最后再延伸講一點(diǎn)。Eclipse運(yùn)行Servlet的時(shí)候,并不是把整個(gè)項(xiàng)目都拷貝到Tomcat里面。而是按照J(rèn)2EE規(guī)范,把相關(guān)運(yùn)行的代碼拷貝到某一個(gè)目錄下。到底是哪個(gè)目錄呢?我們可以按照下面的步驟找到它:右擊項(xiàng)目/Run as/Run Configuration找到你的Tomcat Server/Argument其中找到deploy這個(gè)參數(shù),它清清楚楚的標(biāo)明,你的Servlet項(xiàng)目被部署到哪個(gè)目錄下了!仔細(xì)一看,原來被部署過來的項(xiàng)目只有class文件和Web.xml。像java源代碼什么的,都沒有被部署過來。servlet-api.jar用的是tomcat的lib目錄下的,是所有項(xiàng)目公共的,誰都可以用。注意當(dāng)我把我的硬盤上的jre指向的java目錄故意改成其他值,則tomcat起不來了,說明tomcat的jre是用的sun公司的,不重復(fù)發(fā)明輪子。包括那些io包,sql包都是tomcat中設(shè)置的classpath。