當前位置:首頁 » Servlets » Servlet包

Servlet包

Servlets包實例代碼教學 - 涉及到WEB-INF子目錄中的Web應用程序結構標準,所有的Java web應用程序,並指定由servlet API規範。

涉及到WEB-INF子目錄中的Web應用程序結構標準,所有的Java web應用程序,並指定由servlet API規範。給定一個頂級目錄名myapp,下麵是這個目錄結構看起來像:

/myapp
    /images
    /WEB-INF
        /classes
        /lib

WEB-INF子目錄中包含應用程序的部署描述符為web.xml。所有的HTML文件,在頂層目錄myapp。對於admin用戶,你會發現ROOT目錄以myApp為父目錄。

在包中創建Servlet:

在他們的包的名稱相匹配的結構,WEB-INF/classes目錄包含了所有的Servlet類和其他類文件。例如,如果你有一個完全合格的類名稱com.myorg.MyServlet,那麼這個servlet類必須位於以下目錄中:

/myapp/WEB-INF/classes/com/myorg/MyServlet.class

下麵的例子創建一個MyServlet類在包名為com.myorg中。

// Name your package
package com.myorg;  

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class MyServlet extends HttpServlet {
 
  private String message;
 
  public void init() throws ServletException
  {
      // Do required initialization
      message = "Hello World";
  }
 
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // Set response content type
      response.setContentType("text/html");
 
      // Actual logic goes here. - www.gitbook.net
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy()
  {
      // do nothing.
  }
}

編譯Servlet套件:

冇有大的變化,可在包反編譯一個類。最簡單的方法是讓你的java文件的完全限定路徑,如上麵提到的類將被保留在com.myorg。您還需要在CLASSPATH中添加這些目錄。

假設你的環境已正確設定,在<Tomcat-installation-directory>/webapps/ ROOT/WEB-INF/classes目錄和如下編譯MyServlet.java:

$ javac MyServlet.java

如果servlet依賴於其他庫,必須在CLASSPATH中也要包括JAR文件。這裡的servlet-api.jar隻包括JAR文件,因為冇有使用任何其他庫中Hello World程序。

此命令行使用內置的javac編譯器附帶的Sun Microsystems的Java軟件開發工具包(JDK)。為了此命令正常工作,必須包括所使用的Java SDK的位置包添加到PATH環境變量。

如果一切順利,上述編譯會產生MyServlet.class的文件在同一目錄下。下一節將解釋如何將部署在生產一個編譯Servlet。

Servlet打包部署:

默認情況下,一個servlet的應用程序位於的路徑<Tomcat-installation-directory>/webapps/ROOT目錄和類文件在<Tomcat-installation-directory>/webapps/ ROOT/WEB-INF/classes中。

如果你有一個完全合格的類名稱com.myorg.MyServlet,那麼這個servlet類必須位於WEB-INF/classes/com/myorg/MyServlet.class中,需要創建條目在web.xml文件,這個文件位於以下<Tomcat-installation-directory>/webapps /ROOT/WEB-INF/目錄

    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.myorg.MyServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>

上麵的條目要創建內部<web-app>...</ web-app>標簽在web.xml文件中。有可能是在此表中的各個條目已經可用,但不要在意。

您幾乎已經完成了,現在讓我們使用<Tomcat-installation-directory>\BIN\startup.bat(在Windows上)或<Tomcat-installation-directory>/BIN/startup.sh啟動tomcat服務器Linux / Solaris等),最後在瀏覽器的地址框中輸入http://localhost:8080/MyServlet。如果一切順利,你會得到下麵的結果:

Hello World