用eclipse如何做第一個最簡單的html和Servlet HelloWorld例子web應用
1) file/new/project/web/Dynamic(動態(tài)) Web Project:
按照上面的截圖,當我們點擊finish按鈕以后,eclipse按照我們的指示,生成了以下的空項目架子,準備了所有的jar包和配置文件。我們先看一下下圖的畫紅圈的地方。里面有代表Tomcat的一堆Jar包。還有代表Servlet的一堆類的servlet-api.jar。當然jre的jar包也包括進來了,而且版本是1.6。
1.5)上面帶有所有需要的jar包的項目的空架子有了以后。就可以放手去做一個html了。右擊WebContent:New/Other/Web/Html File,之后點擊Next,輸入文件名:a.html,之后點擊Next,之后點擊Finish。
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
編輯產生的新a.html:
<html>
hello
</html>
好,現在我們就像后面第3步run servlet一樣,右鍵點擊a.html。run as/run on server 來運行a.html。具體指導圖見第3步。
這一步成功以后,可以回頭反思一下,前面的理論了。
2)上面帶有所有需要的jar包的項目的空架子有了以后。就可以放手去做一個Servlet了。右擊我們的項目名ServletHello:New/Servlet
馬克-to-win:注意這張圖中的URL mappings:是/MarkToWinServletHello1,是我們右擊右邊的edit按鈕專門改的。這是將來瀏覽器訪問這個Servlet的 url的地址。這里設置完,會被Eclipse記錄在Web.xml這個配置文件當中。當然將來我們也可以手動更改Web.xml文件。不像前一段我們學的java基礎部分的知識,這里的情況更加復雜。所以很多有關你項目的信息都記錄在web.xml文件當中,用戶可以在這里設置信息,從而tomcat可以從這里獲取信息,達到用戶不重新編譯java文件,就可以重新設置項目參數的目的。比如我這次訪問的數據庫是oracle,下次我可以在Web.xml 當中設置訪問的數據庫是mysql,而且項目不用重新編譯。因為Web.xml文件是純文本文件。
這里我們只勾選了doGet方法。當你在瀏覽器地址欄敲入某個servlet地址后,按回車紐后,通過網絡,就激活了地球另一端一臺機器里的Tomcat中的servlet的doGet方法。這就是sun公司設計的整個J2ee規(guī)范中的servlet語法。
當我們點擊Finish按鈕以后,Eclipse為我們生成了很多文件。其中和我們最相關的有兩個架子文件。一個是 ServletHello1.java,另外一個就是Web.xml文件。讓我們列出這兩個架子文件之中和我們相關的部分。Eclipse可真好,能做的都替我們做了。架子文件寫得非常完美。我們只需要加入少量的語句,項目就可以運行了。Eclipse可真是一個完美的商業(yè)工具軟件呀!反正現在國內軟件公司到處都在用Eclipse。沒有Eclipse,直接手動編譯Servlet,然后部署到Tomcat當中也可以做,但是那個工作量可想而知。方法網上有,有興趣的同學可以自己查。
Web.xml
根據上圖:<servlet>這一塊和<servlet-mapping>這一塊,都共同有一項叫做<servlet- name>。這一項的值相同,說明這倆是一對兒。(當有很多servlet時,誰和誰一對兒就很重要)既然是一對兒,就說明當我們在瀏覽器的地址欄里輸入MarkToWinServletHello1時。com.ServletHello1的doGet方法就會被執(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根據我們的指令生成的Servlet的架子程序。既然我現在講最簡單的Servlet helloworld程序。我就只加一句話。System.out.println("hello");不出意外,這句話應該打印在,服務器端的 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)好,我們現在就運行我們的Servlet。右鍵點擊我們的Servlet,Run As/Run on server:
運行的結果如上圖。首先圖中下面的部分說明Tomcat已經起來了。上面還有個紅鈕,點紅鈕就可以停止Tomcat運行。圖中上面的部分,說明 Eclipse為我們激活了一個小型測試瀏覽器。
終于如愿以償,結果出來了。
馬克-to-win:對于學有余力的同學,我最后再延伸講一點。Eclipse運行Servlet的時候,并不是把整個項目都拷貝到Tomcat里面。而是按照J2EE規(guī)范,把相關運行的代碼拷貝到某一個目錄下。到底是哪個目錄呢?我們可以按照下面的步驟找到它:右擊項目/Run as/Run Configuration找到你的Tomcat Server/Argument其中找到deploy這個參數,它清清楚楚的標明,你的Servlet項目被部署到哪個目錄下了!仔細一看,原來被部署過來的項目只有class文件和Web.xml。像java源代碼什么的,都沒有被部署過來。servlet-api.jar用的是tomcat的lib目錄下的,是所有項目公共的,誰都可以用。注意當我把我的硬盤上的jre指向的java目錄故意改成其他值,則tomcat起不來了,說明tomcat的jre是用的sun公司的,不重復發(fā)明輪子。包括那些io包,sql包都是tomcat中設置的classpath。