使用Eclipse創建Servlet

本次測試,使用是比較原始的Eclipse Java版本,只能創建Java Project,不能創建Dynamic Web Project,也沒有Tomcat的集成。

以在瀏覽器上顯示Servlet中輸出的文字爲目的,其它方面不考慮,不多解釋。

前提條件:已安裝Java,已安裝Tomcat,且正確配置。

第一步,File --> New Java Project

此處可能會修改的可能只有兩個地方,其它的根據情況自行處理,基本不用動。如下圖所示:

 

點擊Next

第二步,必要的配置

 

這個界面上的東西,可改可不改,根據自己實際需要決定。通常情況下,有些IDE會默認爲servlet_test5/WebContent/WEF-INF/classes或者servlet_test5/webapps/WEF-INF/classes,都可以,關鍵是WEF-INF/classes是必要搭配。

第三步,點擊上個界面的Tab中的Libararies

然後點擊Add External JARs

 

 

出現選擇文件對話框,找到tomcat的安裝目錄下的lib文件夾,選擇jsp-api.jar和servlet-api.jar兩個文件

 

 

 

  點擊確定,返回上個界面後,點擊Finish

 

 

 第四步,根目錄下創建index.jsp文件

隨便輸入點什麼,這個文件對於Servlet這個程序來講,沒什麼用,主要用於確定網站是否配置正確。index.jsp放在哪裏都可以,只要在tomcat中指向它即可。

 

 

 配置tomcat,指向此項目的根目錄,即index.jsp所在的目錄

 

 

WIN+R運行,services.msc打開服務管理,重新啓動tomcat,如果一切順利,此時在瀏覽器中輸入localhost:8080,應當能看到index.jsp中輸入的文字。

 

 

 

 

 

 第五步,創建Sevlet

(1)src下創建一個包sabre.web.servlet,包下創建一個類ServletDemo1,名稱自擬,其它默認即可,點擊Finish

 

在創建的類中輸入以下代碼:

package sabre.web.servlet;

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 ServletDemo1 extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public ServletDemo1() {
        super();
    }
    
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // 使用 GBK 設置中文正常顯示
            response.setCharacterEncoding("GBK");
            response.getWriter().write("Servlet演示");
        }
     
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
}

第六步,創建WEB-INF

這是是最關鍵的一步,我的挫折均來自這裏

如果第二步配置的是WEB-INF/classes,則此處應當已經生成了此目錄,不需要手動創建。

根目錄下創建目錄WEB-INF,注意,必須大寫,小寫無效。

必須是這個名稱,否則無效。

WEB-INF目錄必須在tomcat中配置的網站根目錄下,否則無效,如果第二步配置的是servlet_test5/webapps/WEF-INF/classes,則網站根目錄是webapps。

WEB-INF目錄下創建classes目錄,此目錄即是第二步中配置的默認output目錄,編譯生成的字節碼都會放到這裏。原理是如果Web應用程序要用到某個類,則會到/WEB-INF/classes中試着載入類,若沒找到,再嘗試從/WEB-INF/lib的JAR文件中尋找類文件,若還沒有找到,則會到容器實現本身存放類或JAR的目錄中尋找,但位置視實現廠商而有所不同,以Tomcat而言,搜尋的路徑是Tomcat安裝目錄下的lib目錄。

WEB-INF下創建web.xml,注意,web.xml一定要在WEB-INF目錄下,否則無效。web.xml是java web必須的配置文件,類似.net的web.config。

此處web.xml的作用是對servlet進行映射

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
  <display-name>JavaWeb2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
<!-- 配置Servlet -->
    <servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>sabre.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/ServletDemo1</url-pattern>
    </servlet-mapping>
</web-app>

重啓tomcat,瀏覽器中輸入http://localhost:8080/ServletDemo1,如果一切順利,頁面上將顯示"Servlet演示",表示Servlet創建成功。

 

 

 

如果出現HTTP Status 500 - Error instantiating servlet class XXXX類,多半是因爲classes目錄沒在WEB-INF下。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章