涉及到WEB-INF子目錄中的Web應用程序結構標準,所有的Java web應用程序,並指定由servlet API規範。給定一個頂級目錄名myapp,下麵是這個目錄結構看起來像:
/myapp /images /WEB-INF /classes /lib
WEB-INF子目錄中包含應用程序的部署描述符為web.xml。所有的HTML文件,在頂層目錄myapp。對於admin用戶,你會發現ROOT目錄以myApp為父目錄。
在他們的包的名稱相匹配的結構,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. } }
冇有大的變化,可在包反編譯一個類。最簡單的方法是讓你的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的應用程序位於的路徑<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 |